Добавьте a: параметр фильтра в конец URL - PullRequest
1 голос
/ 04 мая 2010

Я создаю приложение, которое требует, чтобы поиск шел глубже, чем начальный уровень. Для этого я использую вложенные области видимости и параметры в 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, даже если есть строка поиска. Я хотел бы знать, как создавать свои ссылки, чтобы они добавлялись в строку поиска, показанную во втором примере кода.

Кроме того, если строка поиска с фильтром уже присутствует, она только изменит этот фильтр и повторно отправит строку поиска с новым фильтром. Я надеюсь, что я в порядке.

1 Ответ

2 голосов
/ 04 мая 2010

Вы имеете в виду, что-то вроде:

link_to "Recent", url_for(params.merge :filter => 'recent')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...