我正在使用will_paginate gem以分页方式显示集合。现在,我想在视图中列表的列上进行排序功能。我已经添加了自己的自定义机制来建立这个,但它让我想知道是否没有标准的方法来实现这一点,利用了will_paginate的简洁和优雅。
答案 0 :(得分:2)
是的,有一种优雅的方式。使用ujs_sort_helper。您可以找到更多详细信息here
答案 1 :(得分:1)
searchlogic很好地插入了will_paginate。
这听起来并不像你在搜索,但显示一切只是搜索的一个特例。如果您不希望过滤数据,则只能使用排序功能并忽略其余功能。
答案 2 :(得分:1)
在以前我已实现排序和分页的项目中,我让will_paginate
处理分页,同时使用overwrite_params
来处理排序。
例如(假设一张表)
<tr>
<th><%= link_to "ID", overwrite_params(:sort => "id", :page => 1) %></th>
<th><%= link_to "Name", overwrite_params(:sort => "name", :page => 1) %></th>
</tr>
<tr>
... information ...
</tr>
overwrite_params
完全按照您的想法执行...它会返回当前网址,其中任何现有的参数都会被指定的值覆盖,或者任何以前不存在的值都会插入到网址中。
由于will_paginate
已经保留了任何网址参数,在您的列标题中使用overwrite_params
并将页面重置为1(这是可选的),意味着您可以继续使用will_paginate
没有黑客攻击也可以处理您的排序。
答案 3 :(得分:1)
Java the Hutt's sortable_table
孤注一掷。这是一个很棒的rails插件。真的很容易设置。