如何在Rails上构建排序网址?

时间:2011-05-30 03:05:35

标签: ruby-on-rails sorting query-string

我正在处理列表控制器的索引页面,它需要多个排序选项。需要查询字符串来确定当前页面处于活动状态的排序选项。我通过将查询字符串硬编码到排序链接中来解决此问题:

=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,我仍然不知道如何处理活动链接问题。做这一切可能需要一段时间。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以通过向任何URL帮助程序提供键/值对来实现此目的。例如:

listings_url(:sort_by => "asc", :order => "asc")