Я создаю приложение, которое требует, чтобы поиск шел глубже, чем начальный уровень. Для этого я использую вложенные области видимости и параметры в URL
Например, когда пользователь ищет «сумочку», он создает запрос, подобный следующему.
http://localhost:3000/junks?search=handbag&condition=&category=&main_submit=Go!
Я хочу добавить параметр: filter в конец этого URL-адреса и перезагрузить страницу с новым URL-адресом.
http://localhost:3000/junks?search=handbag&condition=&category=&main_submit=Go!&filter=lowest_price
Как показано выше, к запросу добавляется & filter = lower_price. Я уже написал код контроллера, чтобы справиться с этим, и я знаю, что он работает, пока запрос похож на 2-ю ссылку выше.
код моего просмотра
<div class = "filter_options">
<p>
<strong>Filter by:</strong>
<%= link_to_unless_current "Recent", :filter => 'recent' %> |
<%= link_to_unless_current "Lowest Price", :filter => 'lowest_price' %> |
<%= link_to_unless_current "Highest Price", :filter => 'highest_price' %>
</p>
</div>
Вот как у меня это работает в настоящее время, что работает, если к моему URL не прикреплена поисковая строка. К сожалению, это приведет к http://localhost:3000/junks?filter=lowest_price, даже если есть строка поиска. Я хотел бы знать, как создавать свои ссылки, чтобы они добавлялись в строку поиска, показанную во втором примере кода.
Кроме того, если строка поиска с фильтром уже присутствует, она только изменит этот фильтр и повторно отправит строку поиска с новым фильтром. Я надеюсь, что я в порядке.