我有一大堆要显示的记录,并使用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|
有没有办法对像这样的大量记录进行分页?
答案 0 :(得分:1)
尝试使用on paginate上的位置触发查询,如下所示
Syslog.paginate(:page => params[:page], :per_page =>10).where(conditions: "your condition")
这应该有效:)
答案 1 :(得分:0)
使用will_paginate 3.0.3,我发现实际的解决方案是:
Model.accessible_by(current_ability).page(params[:page]).order('id DESC')
在will_paginate wiki上找到了。
使用它,我不需要find_each或批量大小,并且可以快速加载数十万条记录。
感谢@prem的初步帮助。还有一个用于协助。