如何在Rails 4中查询所有记录而不是.all()?

2023-12-20

现在ActiveRecord::Relation#all在 Rails 4 中已弃用,如何迭代所有记录?

之前:

Foo.all.each do |foo|
  # whatever
end

我现在可以这样近似,但感觉很脏:

Foo.where(true).each do |foo|
  # whatever
end

有没有更好的办法?


根据Active Record 查询接口的 Rails 指南 http://guides.rubyonrails.org/active_record_querying.html#retrieving-multiple-objects,迭代所有记录的正确方法是使用find_each http://api.rubyonrails.org/classes/ActiveRecord/Batches.html#method-i-find_each.

Using Foo.all.each将加载entire将表存入内存,实例化所有行;然后遍历实例。find_each批量执行此操作,这在内存使用方面更有效。

来自指南:

The find_each方法检索一批记录,然后产生each作为模型单独记录到块中。在下面的示例中,find_each将检索 1000 条记录(两者的当前默认值find_each and find_in_batches),然后将每个记录单独生成到块作为模型。重复此过程,直到处理完所有记录:

User.find_each do |user|
  NewsLetter.weekly_deliver(user)
end

参考:

  • 活动记录查询接口 http://guides.rubyonrails.org/active_record_querying.html
  • ActiveRecord::批次 http://api.rubyonrails.org/classes/ActiveRecord/Batches.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Rails 4中查询所有记录而不是.all()? 的相关文章

  • Rails 中是否可以跨多个数据库进行内部联接?

    我很难使用has many through关联 其中一些表位于单独的数据库中 database one class Input lt ApplicationRecord belongs to user Works great end dat
  • Ruby on Rails:如何设计 SaaS 基础设施?

    我正在构建一个 Rails 3 应用程序 计划将其作为基于订阅的 SaaS 软件即服务 产品提供 基本上 我希望用户能够点击我的 注册 页面 创建一个新帐户 并立即开始使用该软件 我想要实现的一个很好的例子是 http www gethar
  • 在自定义条件下清理 SQL

    我需要创建一个简单的搜索 但我无法使用 Sphinx 这是我写的 keywords input split s queries keywords each do keyword queries lt lt sanitize sql for
  • 无法安装 RMagick 0.0.0。找不到 Magick 配置

    我正在运行 debian 服务器并在一段时间后升级了所有软件包 apt get update apt get upgrade apt get distro upgrade 然后 rmagick 不再工作了 因为 imagemagick 被更
  • 'rails new' 创建一个 'validate_default_type!':选项的默认值必须与其类型匹配。 (参数错误)错误

    我正在尝试创建一个新的 Ruby on Rails 应用程序 每次我输入rails new之后 我收到此错误 usr local lib ruby gems 2 2 0 gems thor 0 19 2 lib thor parser op
  • 按共同关联的数量排序 (Rails)

    背景 我有帖子和用户 并且都有很多社区 客观的 对于任何给定的用户 我想返回一个帖子集合 按该帖子与该用户有共同社区的数量排序 具有更多共同社区的帖子位于更高的位置 我当前的尝试 使用排序方法 有效 Post includes commun
  • 防止Rails Turbolinks导致Google地图JS多次执行

    我目前正在开发 Rails 应用程序 但出现以下错误 您已在此页面上多次包含 Google Maps API 这可能会导致意外错误 经过一番研究后 我发现 Turbolinks 导致了这个问题 当 的时候link to单击后 Google
  • 安装了 Rails 但它说我没有:)

    我刚刚执行了这个命令来安装 Rails gem install rails 它似乎运行良好并安装了东西 然后当我按照本教程进行操作时 http guides rubyonrails org getting started html http
  • 表单元素的自定义 HTML 错误包装器

    我想找到一种方法来自定义默认错误html div class field with errors div 参加我自己的课程 div class clearfix error div
  • 从 Rails 2.3.8 升级到 4.0

    我正在 Rails 2 3 8 上运行一个应用程序 我计划将其升级到 Rails 4 0 RC 版 对我来说最简单的方法是什么 我需要先升级到 Rails 3 x 吗 注意 在我当前的实现中 我使用八哥和雪貂 作为升级的一部分 我也在考虑搬
  • Rails 6 - 操作文本和 API

    我正在创建一个 Rails 6 0 0 应用程序 它具有以下模块 网络 表格 Cruds Api 我使用的地方有一个 CRUD动作文本 https edgeguides rubyonrails org action text overvie
  • 使用 PostgreSQL 的模式和 Rails 创建多租户应用程序

    我已经想通的事情 我正在学习如何在 Rails 中创建多租户应用程序 该应用程序根据用于查看应用程序的域或子域来提供来自不同模式的数据 我已经回答了一些问题 如何让 subdomain fu 也能与域一起使用 这是有人问了同样的问题 htt
  • 如何显示关联记录子集的表单,其中一些记录尚不存在?

    我有任务和用户 当用户完成任务时 我创建一个完成 其中有一个字段供用户指示他们花费了多长时间 我需要一个表格来显示所有任务及其完成状态和 time spent 属性 提交时 应更新现有的完成情况并创建新的完成情况 如果可能的话 我想在 Fo
  • Ruby on Rails link_to 与 put 方法

    我是 Rails 新手 我正在尝试使用 link to 帮助程序创建一个发出 PUT 请求而不是 GET 请求的链接 具体来说 我正在尝试创建一个链接 从管理员面板激活我的应用程序中的用户帐户 我正在使用 Rails 3 0 5 我的rou
  • 如何访问 has_many :through 关联对象的相关连接模型而不需要额外的查询?

    这是我现在已经遇到过很多次的事情 我很想弄清楚如何做我想要的事情 或者构建并向 Rails 提交一个补丁来实现它 很多时候 在我的应用程序中 我会有一些看起来像这样的模型 class User lt ActiveRecord Base ha
  • 如何显示 RSpec 测试生成的 SQL 查询日志?

    我正在为我的 Rails 3 应用程序编写规范 我想测试数据库事务是否真的有效 如果能够看到我的应用程序在规范驱动下生成的 sql 查询 这将非常有帮助 有没有办法像在 Rails 控制台中一样查看查询 我正在使用 Rails 3 0 9
  • 如何访问“可以?”细胞内的方法?

    我在用着cancan and cells我的 ruby on rails 项目中的 gems 如何访问can 细胞内的方法 Thanks 我必须这样做 尝试 class MyCell lt Cell Rails include CanCan
  • 日期时间到 NSDate

    如何转换字符串2010 11 19T20 00 00Z进入一个NSDate object 我尝试过使用 dateFormatter setDateFormat yyyy MM ddTHH mm ssZ 但看起来我的自定义格式样式错误 PS
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • 为什么每个方法需要将其循环的值分配给变量?

    在 Rails 上工作 发现我对 Rails 的理解缺乏知识each method 不知道为什么each方法需要变量 message h2 h2 不确定为什么每个方法都需要变量 message 事实并非如此require它 你完全可以忽略它

随机推荐

  • 返回实例列表没有什么区别吗?那么性能呢?

    我刚刚意识到 对于我的程序中的特定模块 返回或不返回实例列表根本没有区别 使用固定种子 结果是相同的 因此 我想知道 包含 return 语句似乎是更好的编程实践 那是对的吗 我主要担心的是性能 我很难计时 因为计算机中发生的其他事情似乎会
  • std::find() 在 C 风格数组上向后?

    说我需要使用s typedef struct tagSOMESTRUCT Defined by someone else C compatible int count int elements 256 SOMESTRUCT SOMESTRU
  • NSString 到 NSURL?

    尝试将字符串转换为 NSURL 但没有发生 barcodeTextLabel text foundCode barcodeString urlToGrab NSString stringWithFormat foundCode barcod
  • 我可以停止调用 sp_reset_connection 以提高性能吗?

    我的探查器跟踪显示exec sp reset connection在每个 sql 批处理或过程调用之间调用 有其原因 https stackoverflow com questions 596365 what does sp reset c
  • 在 Woocommerce 中添加除特定国家/地区之外的内联 CSS

    如果国家 地区不是法国 我想在我的 woocommerce 网站中添加 css 样式 因为我需要在除法国之外的所有国家 地区隐藏按钮 我尝试了下面的代码 add filter woocommerce state FR custom css
  • 数字格式问题

    http www exampledepot com egs java text FormatNum html http www exampledepot com egs java text FormatNum html 我有数字 1 23
  • 如何在n层架构中将实体框架模型类与业务层类映射 - ASP.NET-MVC

    我正在 MVC 框架 ASP NET MVC5 Entity Framework 6 内研究 e tier 架构 我的应用程序分为三个子项目 即业务层 数据访问层 存储库 包括存储库和工作单元 和 ASP NET MVC Web 应用程序
  • 处理mysql Insert语句中的重复记录

    我有一个 php 表单来将数据输入 mysql 数据库 我的问题是如何处理重复记录 例如 如果 ID 号已经存在 我如何检查是否存在 然后是否抛出错误消息 解释说 ID 已在数据库中 这是插入语句的示例 但是我希望它在输入之前检查数据库是否
  • iPhone通过手指运动识别不同的形状

    我正在为 iPhone 开发一个应用程序 我想当我的手指在 iPhone 表面移动时检测不同的形状 任何人都可以帮助我 如何通过 iPhone sdk 中的手指运动或手势检测不同的几何形状 你可以做到 但这不是一件容易的事 iPhone S
  • Symfony:如何使 JMS 序列化器适用于严格类型?

    这是我的情况 我正在尝试编写一个适用于 严格 类型 整数 布尔值和浮点数 的 Symfony REST API 因为默认的 Symfony 行为不支持它 并且我想避免强制转换类型 例如 JMS Serializer 将字符串值转换为整数字段
  • 在不相关的项目之间共享 Maven pom.xml 部分的最佳方式?

    我们公司定义了一些关于 Maven pom 的 最佳实践 例如 指定 utf 8 进行资源处理 对哪些文件夹进行过滤 处理单元测试与集成测试以及编译器设置 目前 这些最佳实践记录在我们公司的 wiki 上 但是当 最佳实践 列表发生变化时
  • 如何让 PDO 在每次连接时运行 SET NAMES utf8,在 ZendFramework 中

    如何使 PDO 适配器在每次连接时运行 SET NAMES utf8 在 ZendFramework 中 我正在使用 INI 文件来保存适配器配置数据 我应该在那里添加哪些条目 如果不清楚 我正在寻找正确的语法来在我的项目的 config
  • MVC3 使用 CheckBox 和复杂的视图模型

    对了 伙计们 我需要你的智慧 因为我找不到正确的方法 我有一个视图模型 public class EditUserViewModel public User User public IQueryable
  • 为什么 WCFTestclient 不理解标准 EF 对象但理解 STE 对象

    当我尝试使用公开返回标准 EF 对象的操作的 WCF 服务时 我收到有关这些操作的警告 该警告指出 WCF 测试客户端不支持此操作 因为它使用类型 为我的 EF 模型中的实体生成的源代码包含普通的 C 类 这些类继承自 EntityObje
  • 无法解决“ImportError:动态模块未定义模块导出函数”

    The is the link https drexel0 my sharepoint com u g personal zc86 drexel edu Eb5NENK2nglLrK jA Qt OwB9ns xmUM qj1iIpbdpB
  • 如何更改图表轴的字体属性

    如何更改 Excel 2007 和 2010 中图表轴的字体属性 不是轴title 那很容易 我问的是轴本身的字体 它在 Excel 2010 中的记录相当于 shEditSizeScales ChartObjects MyChart Ch
  • 如何管理 git 上多个用户的代码合并?

    Git 不会让人推送存在合并冲突的分支 在我们目前的情况下 大约有 15 个冲突文件 其中一些是我的代码 一些是其他人的代码 最好是每个更改代码的人都对这些特定文件执行合并 我们如何处理自己的文件来完成合并 Unmerged paths b
  • 使用 XSLT 检查节点是否存在

    首先我想问一下 对于XML节点 下面两条语句有什么区别 检查节点是否为空节点 检查节点是否存在 假设我有一个像这样的 XML 文件
  • MySQL 有没有办法自动将空字符串转换为 NULL 值?

    我有一个表 我正在尝试向其添加唯一索引 问题是 脚本设置插入数据的方式 有时会出现一些空字符串而不是NULL 因此 除了更改脚本 我预见这是必要的 除非有人救我 mysql 中是否有任何设置可以自动地 use NULL如果将空字符串传递给唯
  • 如何在Rails 4中查询所有记录而不是.all()?

    现在ActiveRecord Relation all在 Rails 4 中已弃用 如何迭代所有记录 之前 Foo all each do foo whatever end 我现在可以这样近似 但感觉很脏 Foo where true ea