Iterating through every record in a database - Ruby on Rails / ActiveRecord

database, loops, rails-activerecord, ruby-on-rails

Solution

Here is the correct syntax to iterate over all User :

User.all.each do |user|
  #the code here is called once for each user
  # user is accessible by 'user' variable

  # WARNING: User.all performs poorly with large datasets
end

To improve performance and decrease load, use `User.find_each` (see doc) instead of `User.all`. Note that using `find_each` loses the ability to sort.

Problem

n00b question. I'm trying to loop through every User record in my database. The pseudo code might look a little something like this: ``` 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 ``` Can someone fill me in on the best approach for doing this? A little help with the syntax would be great too :)

Original source