如何在rails活动记录查询中使用包含内部的联接?

2024-01-31

我只是想改进查询,从而提高应用程序的性能。

 Student.includes(:parents =>:emails).where("emails.email_address is not null and emails.email_address != ''")

我只是想使用电子邮件表满足条件,所以显然不需要预先加载电子邮件表,相反我更喜欢联接。但我无法弄清楚如何使用包含和连接在一起?这样它就应该立即加载父母并通过电子邮件加入


你可以通过将两者链接在一起来做到这一点:

Student.joins(parents: :emails).includes(:parents).where("emails.email_address is not null and emails.email_address != ''")

它的工作原理是这样的joins将创建一个JOIN但不将任何数据保留在内存中,而includes会将数据预加载到内存中,但不会创建连接。

我建议阅读这篇博文:https://web.archive.org/web/20200804112405/http://tomdallimore.com/blog/includes-vs-joins-in-rails-when-and-where/ https://web.archive.org/web/20200804112405/http://tomdallimore.com/blog/includes-vs-joins-in-rails-when-and-where/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在rails活动记录查询中使用包含内部的联接? 的相关文章

  • 如何使用 Rspec 测试具有嵌套路由的控制器?

    我有 2 个使用轨道脚手架生成器创建的控制器 我希望它们嵌套在一个名为 demo 的文件夹中 所以运行 rails g scaffold demo flows rails g scaffold demo nodes 然后我决定将节点嵌套在流
  • (Rails) Assert_Select 的烦人警告

    有谁知道如何让assert select在rake测试期间不输出所有那些讨厌的html警告 你知道 就像这样的东西 ignoring attempt to close body with div opened at byte 1036 li
  • 获取嵌套参数

    我有一个带有嵌套参数的表单 在下面的示例中 如何获取控制器中的 amount whole 值 Parameters utf8 gt authenticity token gt KCmBI6RLh0LdUsM2r5H1vhNykS1IXecF
  • Windows 7 x64 上的 Ruby on Rails SQLite 问题

    当我尝试做的时候db create使用 Windows 7 x64 在具有此数据库配置的 sqlite 数据库上 development adapter sqlite3 database db development sqlite3 tim
  • 用户未定义的方法 attr_accessible 错误

    我正在尝试创建某种登录 我创建了一个用户脚手架并将此代码放在我的 user rb 中 class User lt ActiveRecord Base attr accessible name password digest password
  • 如何加载页面特定的rails 4 js文件?

    我正在阅读资产管道的 Rails 指南文档 它指出 CoffeeScript 页面特定生成的文件 如果清单上有 require tree 指令 则默认情况下可供用户使用 这对我不起作用我必须包括这个 在特定控制器上 我缺少什么 资产管道会将
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 我想要一个默认选择空白值的日期选择框

    我用了以下date select助手 但没有一个显示默认情况下选择空白值的日期选择框 通过以下所有代码 我得到了选择框 但选择了当前日期 我在 Rails 2 3 2 上
  • 什么是适合 Rails 3 的测试框架?

    去年我一直在使用 Ruby On Rails 但是 无法进行单元测试 现在我必须编写单元测试代码 哪个测试框架好 为什么 有这方面的好的教程吗 我的系统配置 Ruby 1 9 2 Rails 3 Ubuntu 10 第一个技巧是 尝试升级到
  • Rails 4:将数据库导出到 YAML

    使用 Rails 2 3 可以使用几个插件之一将数据库轻松导出 转储 到 YAML 请参阅将数据库表导出到 YAML 文件的最佳方法 https stackoverflow com questions 490507 best way to
  • Rails 安全:完全避免大规模分配

    我倾向于不需要批量分配 http guides rubyonrails org security html mass assignment我的生产代码中的功能 在我的测试代码中 我经常使用它 但在这些情况下我do想要设置任意列 因此 如果在
  • 在 Sinatra 中运行后台进程

    我有 Sinatra Rails 应用程序和一个启动一些漫长过程的操作 通常我会为后台作业排队 但这种情况太简单了 后台进程很少启动 所以队列是一个开销 那么如何在没有队列的情况下运行后台进程呢 get build logs project
  • 子文件夹和关系中的 Rails 模型

    我在自动加载的文件夹中组织了一些轨道模型 config autoload paths Dir Rails root join app models 我可以直接使用所有模型 例如Image first file name 但是当我尝试通过关系
  • Rails 3.2:用 json 序列化中的空字符串替换 null 值

    我正在使用 Rails 3 2序列化 http www simonecarletti com blog 2010 04 inside ruby on rails serializing ruby objects with json 将 ru
  • Rails 3.1、Ruby 1.9.2-p180 和 UTF-8 问题

    我在使用 UTF 8 字符时遇到一些问题 这是 db seeds rb User create username eml first name last name ck email email protected cdn cgi l ema
  • Travis-CI 上的 Rails 数据库设置

    我正在尝试在 Rails 项目上使用 Travis 持续集成 文档说 对于 SQLite3 测试数据库必须配置如下 test adapter sqlite3 database memory timeout 500 但我想保留本地测试的默认配
  • Rails 中的字母分页

    我正在寻找 Rails 的宝石用于字母分页 我希望我可以在结果中找到第一个字母的列表 我的意思是 如果没有以 a 开头的行 我不希望 a 显示在分页链接上 这种宝石已经存在了吗 提前致谢 这根本不难创建 例如 如果您有一个find 也许像
  • 在 Rails 中本地化嵌套虚拟属性

    怎么可能本地化嵌套虚拟属性在 Rails 中 该模型 class User lt ActiveRecord Base attr accessor company information This is used in callbacks e
  • 无法解决 Rails 设置中的错误 - `LoadError: 无法加载此类文件 -- active_storage/engine`

    我正在尝试设置一个新的 Rails 应用程序 但遇到了一个我似乎无法解决的问题 当尝试跑步时rake db drop or rake db create我不断收到错误 LoadError cannot load such file acti

随机推荐

  • Qt Webkit Bridge:C++ 访问 JavaScript

    我正在使用 QWebView 并调用 setHtml 来显示一些 HTML JavaScript 页面 我使用 QWebFrame evaluateJavaScript 传递数据更新 方法是向其传递包含对 JavaScript 函数 带参数
  • 从文本文件读取 - 批处理

    我有一个文本文件 a txt 你好世界下午好 我编写了一个批处理脚本来逐行读取该文件的内容 FOR F tokens delims x in a txt DO echo x 我得到的输出为 Hello World 由于分隔符 空格 的默认行
  • 在Python中使用字符串调用函数[重复]

    这个问题在这里已经有答案了 前几天在网上搜索 发现一篇关于python字典的有趣文章 这是关于使用字典中的键来调用函数 在那篇文章中 作者定义了一些函数 然后定义了一个字典 其键与函数名完全相同 然后他可以从用户那里获取输入参数并调用相同的
  • 继承:内部类与内部接口

    在表达关切的同时防止基类暴露 https stackoverflow com questions 52842532 prevent exposure of base classes abstract classes 52843168 528
  • CMYK + CMYK = ? CMYK / 2 =?

    假设CMYK中定义了两种颜色 color1 30 40 50 60 color2 50 60 70 80 如果要打印它们 最终的颜色会有什么值 color new min cyan1 cyan2 100 min magenta1 magen
  • 为所有用户卸载自动运行注册表项

    考虑这种情况 Inno Setup 将名为 XYZ 的程序安装到 Program Files 中 供所有用户访问 程序 XYZ 中的配置选项允许安装注册表值HKCU Software Microsoft Windows CurrentVer
  • Android:将静态库合并为一个

    我使用 Android NDK r8 生成多个静态库包括 BUILD STATIC LIBRARY 我成功得到 lib1 a lib2 a lib3 a等 现在我想将这些静态库合并为一个 我尝试使用 Android NDK 中的 ar ex
  • 为什么有 BigInteger(String) 而没有 BigInteger(long)?

    在 Java 中 要将 String 转换为 BigInteger 可以使用构造函数new BigInteger String 但要转换 int long 你可以使用工厂函数BigInteger valueof long 这是为什么 Mor
  • AngularDart 组件和模型绑定

    是否可以将 AngularDart ngComponent 绑定到模型 然后从组件操作该模型 并查看 ngComponent 外部更改之外的更改 例如
  • WordPress - $wpdb->插入 - MySQL NOW()

    是否有可能在 wpdb gt insert 调用中使用 MySQL NOW 当我使用以下代码时 NOW 不起作用 data array id gt NULL order gt serialize POST data Order create
  • 从另一个 .ipynb 文件导入函数

    我在名为 functions ipynb 的文件中定义了一个 hello world 函数 现在 我想使用 导入函数 导入另一个文件中的函数 我确信它们位于同一个文件夹中 但是 它仍然显示 ImportError 没有名为函数的模块 顺便说
  • fputs和fflush,写入和缓冲过程

    我对 C 中的写入处理如何进行感到困惑 所以我有一个字符串 s 我想将其写入输出 为此 我使用 fputs fputs s stdout 但显然这不会写入输出 而只是收集数据进行写入 具体是在哪里收集的 所以我必须等到程序退出或者直到我调用
  • 如何正确使用SerialPort.DiscardInBuffer?

    我编写了一个应用程序 它以非常快的速度从串行设备读取数据 然而 串行端口对象无法触发收到数据 https learn microsoft com en us dotnet api system io ports serialport dat
  • 删除单链表中的元素

    在此代码中 我删除链接列表中的元素 11 gt 12 gt 13 gt 14 gt 15 gt 12 gt 16 如果我想删除 12 它只删除第一次出现的元素 即 o p 将是 11 gt 13 gt 14 gt 15 gt 12 gt 1
  • Orgmode:如何过滤掉缠结的块?

    在 Orgmode 中 有没有办法仅缠结子树中与特定标签匹配 或不匹配 的块 例如使用以下代码 A BEGIN SRC c printf Not exported END SRC B D BEGIN SRC c printf Exporte
  • 从 Flutter 中的 Firestore 集合中获取所有内容

    我在我的项目中设置了 Firestore 我创建了名为的新集合categories 在此集合中 我创建了三个具有唯一 ID 的文档 现在我想在我的 Flutter 应用程序中获取这个集合 所以我创建了CollectionReference
  • 测试使用 Hooks 获取数据的 React 组件

    我的 React 应用程序有一个组件 可以从远程服务器获取要显示的数据 在前钩时代 componentDidMount 是该去的地方 但现在我想为此使用钩子 const App gt const state setState useStat
  • 从 PHP 数组中删除“<”和“>”标签

    我有一个像这样的数组 Array 0 gt lt email protected cdn cgi l email protection gt 1 gt lt email protected cdn cgi l email protectio
  • 创建两个日期之间所有天数的向量

    R 中是否有一种简单的方法可以列出两个指定日期之间发生的所有有效日期 例如 我想要以下输入 itemizeDates startDate 12 30 11 endDate 1 4 12 生成以下日期 12 30 11 12 31 11 1
  • 如何在rails活动记录查询中使用包含内部的联接?

    我只是想改进查询 从而提高应用程序的性能 Student includes parents gt emails where emails email address is not null and emails email address