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
有人可以填写我这样做的最佳方法吗?语法的一点帮助也很棒:)
答案 0 :(得分:64)
以下是迭代所有用户的正确语法:
User.all.each do |user|
#the code here is called once for each user
# user is accessible by 'user' variable
end
要提高效果并降低负载,请使用User.find_each
(see doc)代替User.all
。请注意,使用find_each
会失去排序功能。
答案 1 :(得分:3)
也可用于同一目的的单线:
User.all.map { |u| u.number = ""; puts u.number }