使用will_paginate进行排序的事实上的方法

时间:2010-01-21 16:41:33

标签: ruby-on-rails will-paginate

我正在使用will_paginate gem以分页方式显示集合。现在,我想在视图中列表的列上进行排序功能。我已经添加了自己的自定义机制来建立这个,但它让我想知道是否没有标准的方法来实现这一点,利用了will_paginate的简洁和优雅。

4 个答案:

答案 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插件。真的很容易设置。