我想一次将5条记录拉入视图(我使用的是rails 2.3.8)。
我正在使用will_paginate,它工作得很好但是:
我想将这些结果发送到视图,一次发送5条记录,然后添加一个div,然后循环直到它们全部显示出来。
我尝试使用find_in_batches
,但我不知道如何访问它返回的对象。我可以使用#{}
吗?
我知道有.first
和.last
方法,但有.second
,.third
,.fourth
等等吗?
答案 0 :(得分:1)
您有find_in_batches
in the documentation的示例:
Person.find_in_batches(:conditions => "age > 21", :batch_size => 5) do |group|
sleep(50) # Make sure it doesn't get too crowded in there!
group.each { |person| person.party_all_night! }
end
但这可能不是您正在寻找的解决方案。如果您有5000条记录,则会发出1000条数据库查询。
更好的解决方案是使用each_slice
,此方法将获取一个数据库查询中的所有记录,然后拆分结果集:
Person.find(:all, :conditions => "age > 21").each_slice(5) do |group|
group.each { |person| person.party_all_night! }
end