Я создаю приложение, которое требует, чтобы поиск пошел глубже, чем начальный уровень. Я использую вложенные объемы для выполнения этого и параметрических усилителей в URL
Например, когда пользователь ищет "сумочку", она создает запрос как следующее.
http://localhost:3000/junks?search=handbag&condition=&category=&main_submit=Go!
Я хочу добавить a: параметрический усилитель фильтра в конец этого URL и перезагрузки страница с новым URL.
http://localhost:3000/junks?search=handbag&condition=&category=&main_submit=Go!&filter=lowest_price
Как показано выше &filter=lowest_price добавляется к запросу. Я уже написал код контроллера для обработки этого, и я знаю, что он работает, пока запрос похож на 2-ю ссылку выше.
Это - то, как у меня в настоящее время есть он, который работает, если моему URL не присоединили строку поиска к нему. К сожалению, это перейдет к http://localhost:3000/junks?filter=lowest_price, даже если будет строка поиска. Я хотел бы знать, как создать мои ссылки так, чтобы они добавили на строку поиска, показанную в 2-м примере кода.
Кроме того, если бы строка поиска с фильтром уже присутствует, она только изменила бы тот фильтр и повторно отправила бы строку поиска с новым фильтром. Я надеюсь, что я ясен.
Вы имеете в виду, что-то вроде:
link_to "Recent", url_for(params.merge :filter => 'recent')