2011-10-13 168 views
1

嗨,我有一個ruby項目中的用戶數據庫,我需要循環遍歷每個人並獲取他們的值。你如何循環?我知道你可以使用在ruby中循環遍歷

model.find(i) 

並獲得每個元素,但你如何循環到最後一個元素?

回答

2

有很多方法可以循環 假設你有一個用戶對象

你可以做

users.each do |user| 

    puts user.name 

end 

這是循環

其他方式可以使用for循環最簡單的方法,而在軌道中循環其他迴路 http://www.tutorialspoint.com/ruby/ruby_loops.htm

6

我假定您正在使用導軌&有效記錄。如果是這樣,

User.all.each do |user| 
    # your code here 
end 

User.find_each do |user| 
    # your code here 
end 

前者加載數據庫中的所有用戶同時,後者 - 負荷記錄分批,這是有益的,如果你有很多的記錄。

在紅寶石迭代器使用了很多,通常用於調用可枚舉的標準模塊:An Introduction to Ruby's Enumerable Module

+1

對於'find_each' – jaydel

3

正如羅斯在他回答說:array.each是循環的最佳方式。

但是在ActiveRecord的情況下,您應該看看關於Loading in Batches的Rails指南部分。

你可以很容易地說User.all.each,但如果你有1,000,000用戶,這可能會崩潰你的服務器。

這是更好地說

User.find_each do |user| 
    * do something * 
end 

而讓幕後的內存後的Active Record的樣子。