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
end
パフォーマンスを改善して負荷を減らすには、User.find_each
の代わりにUser.all
( docを参照 )を使用します。 find_each
を使用すると、並べ替えの機能が失われることに注意してください。
同じ目的のための可能なワンライナー:
User.all.map { |u| u.number = ""; puts u.number }