簡體   English   中英

遍歷數據庫中的每條記錄 - Ruby on Rails / ActiveRecord

[英]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 }


[英]#<ActiveRecord::AssociationRelation Active Record Query Ruby on Rails

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM