我正在处理列表控制器的索引页面,它需要多个排序选项。需要查询字符串来确定当前页面处于活动状态的排序选项。我通过将查询字符串硬编码到排序链接中来解决此问题:
=link_to "Lowest Price","/listings?sort_by=price&order=asc", :class=>"#{'active' if request.query_string =~ /sort_by=price&order=asc/ }"
但这有两个问题。首先,这太脆弱了。其次,它不支持搜索查询或任何其他参数 - 否则它会中断。
我需要的是一种更改排序选项的方法,而不假设查询字符串将保持不变......
不确定是否有最佳做法。我正在走很长的路,只是添加帮助来解析url到hash,hash到url,我仍然不知道如何处理活动链接问题。做这一切可能需要一段时间。
任何建议都将不胜感激。
答案 0 :(得分:1)
您可以通过向任何URL帮助程序提供键/值对来实现此目的。例如:
listings_url(:sort_by => "asc", :order => "asc")