我正在构建一个需要搜索比初始级别更深入的应用程序。我正在使用嵌套作用域来完成此操作并在URL
中使用params例如,当用户搜索“手提包”时,它会创建如下的查询。
http://localhost:3000/junks?search=handbag&condition=&category=&main_submit=Go!
我想在此网址的末尾添加:filter param并使用新网址重新加载页面。
http://localhost:3000/junks?search=handbag&condition=&category=&main_submit=Go!&filter=lowest_price
如上所示,& filter = lowest_price被添加到查询中。我已经编写了控制器代码来处理这个问题,我知道只要查询就像上面的第二个链接一样。
<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>
这就是我目前的方式,如果我的网址没有附加搜索字符串,则可以使用。不幸的是,即使有搜索字符串,也会转到http://localhost:3000/junks?filter=lowest_price。我想知道如何创建我的链接,以便它们添加到第二个代码示例中显示的搜索字符串。
此外,如果已存在带过滤器的搜索字符串,则只会更改该过滤器并使用新过滤器重新提交搜索字符串。我希望我很清楚。
答案 0 :(得分:2)
你的意思是,像:
link_to "Recent", url_for(params.merge :filter => 'recent')