ruby-on-rails - Rails 5 中的 "left_joins"和 "includes"有什么区别?

标签 ruby-on-rails activerecord ruby-on-rails-5

在 Rails 5 中,他们添加了 ActiveRecord 查询方法 left_joinsleft_joinsincludes 有什么区别?我一直将 includes 视为左连接。

最佳答案

includes默认情况下在 2 个查询中加载关联数据,就像 preload . 但是加上额外的 references调用它从使用两个单独的查询切换到创建单个 LEFT OUTER JOIN,如 left_joins .

引用:

Preload, Eagerload, Includes and Joins

Making sense of ActiveRecord joins, includes, preload, and eager_load

关于ruby-on-rails - Rails 5 中的 "left_joins"和 "includes"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53414830/

相关文章:

ruby-on-rails - 在 Rails 中,如何将 Assets 管道中的样式表作为 <style> 标记包含在内?

ruby-on-rails - 将两个 ActiveRecord 关联集合合并为单个关联集合

ruby-on-rails - 获取以[。]开头或结尾的错误对象字段

ruby-on-rails - Rails 5:不推荐使用 `Gem.paths=`参数中的数组值

ruby-on-rails - 将 MomentJS 格式化为 Rails DateTime

ruby-on-rails - 为什么这个 Rspec 测试返回 "email already taken"

ruby-on-rails - RefineryCMS 与现有 Rails 3.1+ 应用程序集成

ruby-on-rails - 如何为 rails 5.2 安装本地字体

php - Yii 关系记录与来自其他表的条件

php - CodeIgniter 将数据插入数据库并在字符串中添加引号