Rails一次访问2条记录

时间:2013-11-27 09:11:02

标签: ruby-on-rails ruby ruby-on-rails-4

我想在一个页面上打印2条记录。我有大约513个数据库记录。我知道在ruby中你可以使用类似range.step(2).each do ...的东西,是否可以使用rails和一个活动的记录集合来做它?

像:

Users.step(2).each_with_index ...

  do something with User(i)
  do something with User (i+1)
  blah blah
...
.

end

2 个答案:

答案 0 :(得分:2)

ActiveRecord关系可以视为数组,因此它们也实现了Enumerable#each_slice方法:

User.all.each_slice(2) do |user1, user2|
  # code goes here
end

答案 1 :(得分:1)

User.find_each(batch_size: 2)怎么样?
SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 2
#<User:0x007fa92ec82f60>
#<User:0x007fa92ec82b78>
SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 2
#<User:0x007fa92ec82f60>
#<User:0x007fa92ec82b78>
.........
Rails find_each 他会把所有的记录分成两部分。