ruby-on-rails - 遍历数据库中的每条记录 - Ruby on Rails/ActiveRecord

标签 ruby-on-rails database loops 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 performs poorly with large datasets
end

要提高性能并减少负载,请使用 User.find_each ( see doc ) 而不是 User.all。请注意,使用 find_each 会失去排序的能力。

关于ruby-on-rails - 遍历数据库中的每条记录 - Ruby on Rails/ActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13442073/

相关文章:

java - For 循环星号和加号(矩形形式)

ruby-on-rails - Restful_authentication 与 Authlogic

javascript - 如何解决 Rails 应用中 Google map 自动完成功能中的此问题?

ruby-on-rails - 设计和 Ruby on Rails : On Sign Up All Validations fail with "Can' t be Blank"

mysql - 操作数应包含 1 列 if 子句

arrays - 验证数量范围数组的最有效方法是什么?

ruby-on-rails - 如何限制列的值

database - 如何使用 Cloud Firestore 计算集合中文档的数量

sql-server - 在默认路径下使用脚本创建数据库?

ruby-on-rails - 有没有一个rails方法可以循环遍历上传文件的每一行? "each_line"是一个IO方法,但它不起作用