Подтвердить что ты не робот

Итерирование по каждой записи в базе данных - 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 phone number
            puts @user.number

        end

    end

Может ли кто-нибудь наполнить меня наилучшим подходом для этого? Немного помочь синтаксису было бы здорово:)

4b9b3361

Ответ 1

Вот правильный синтаксис для итерации по всему пользователю:

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. Обратите внимание, что использование find_each теряет способность сортировать.

Ответ 2

Также возможна однострочная линия для одной цели:

User.all.map { |u| u.number = ""; puts u.number }