![](/img/trans.png)
[英]Ruby/Rails: Iterating through ActiveRecord Query Results Using Blocks?
[英]Iterating through every record in a database - Ruby on Rails / ActiveRecord
n00b 問題。 我正在嘗試遍歷數據庫中的每個用戶記錄。 偽代碼可能看起來像這樣:
def send_notifications
render :nothing => true
# Randomly select Message record from DB
@message = Message.offset(rand(Message.count)).first
random_message = @message.content
@user = User.all.entries.each do
@user = User.find(:id)
number_to_text = ""
@user.number = number_to_text #number is a User's phone number
puts @user.number
end
end
有人可以告訴我這樣做的最佳方法嗎? 語法方面的一些幫助也會很棒:)
這是迭代所有 User 的正確語法:
User.all.each do |user|
#the code here is called once for each user
# user is accessible by 'user' variable
# WARNING: User.all is not performant with large datasets
end
要提高性能並減少負載,請使用User.find_each
( 請參閱文檔)而不是User.all
。 請注意,使用find_each
會失去排序的能力。
還有一個可能的單線用於相同目的:
User.all.map { |u| u.number = ""; puts u.number }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.