0

我有大量的记录要显示,并使用 find_each 分解了查询:

 - Syslog.find_each(:batch_size => 2000) do |s|
   = s.something

问题是试图引入分页。我试过 will_paginate (3.0.3):

 - Syslog.paginate(:page => params[:page], :per_page => 10).find_each(:conditions => {  }, :batch_size => 2000 ) do |s|

有没有办法对这样的大量记录进行分页?

4

2 回答 2

1

尝试使用 where on paginate 触发查询,如下所示

Syslog.paginate(:page => params[:page], :per_page =>10).where(conditions: "your condition")

那应该工作:)

于 2012-08-31T08:18:55.993 回答
0

使用 will_paginate 3.0.3,我发现实际的解决方案是这样做:

Model.accessible_by(current_ability).page(params[:page]).order('id DESC')  

在 will_paginate wiki上找到了。

使用它,我不需要 find_each 或批量大小,并且可以快速加载数十万条记录。

感谢@prem 的初步帮助。加一为协助。

于 2012-09-24T15:10:35.553 回答