2013-11-27 62 views
0

我試圖在一頁上打印2條記錄。我有大約513個數據庫記錄。我知道在紅寶石,你可以使用像range.step(2).each do ...,是否有可能與軌道和活動的記錄集合呢?Rails一次訪問2條記錄

,如:

Users.step(2).each_with_index ... 

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

end 
+0

你試過了嗎? – sevenseacat

+0

未定義的方法'步驟'爲#

回答

2

ActiveRecord關係可以被視爲陣列,所以他們也已經實現Enumerable#each_slice方法:

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

謝謝!!這正是我所尋找的 –

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 他禾將所有記錄分成兩部分。

+0

謝謝隊友,我想到批處理,但它通常用於超過1000條記錄,所以我不知道是否是最佳做法 –

+0

500條目的規範,但如果它記錄10000服務器的謊言。 –