n00b问题.我正在try 遍历数据库中的每个用户记录.伪代码可能看起来有点像这样:

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.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会失go 排序能力.

Database相关问答推荐

prisma 中的隐式或显式多对多关系

Sequel Pro / MAMP 在哪里存储本地数据库?

哪个能够存储 1 亿条记录的嵌入式数据库具有高效的 C 或 C++ API

如何开始使用 SQLCipher for android?

Postgres - 如何返回缺失数据计数为 0 的行?

MySQL workbench:如何将 mysql 数据库导出到 .sql 文件?

将 `tsv` 文件插入 postgresql 数据库

在 MySQL 中查看表以进行更改?

将 XML 存储在数据库中是否不好?

Windows 环境下无法识别 postgres 'psql' 命令

如何从 T-SQL 中的表中 Select 前 N 行?

Oracle 的免费桌面客户端?

mysql 无法从存储引擎读取自增值

在 PostgreSQL 中索引空值

如何将纬度/经度对转换为 PostGIS 地理类型?

我应该混淆用户的数据库 ID 吗?

MySQL 从一个数据库插入另一个数据库

为什么负 id 或零被认为是不好的做法?

查询以查找列的 nᵗʰ 最大值

SqlParameterCollection only accepts non-null SqlParameter type objects, not String objects