如何为模型记录数组加载关联

lul*_*ala 18 activerecord ruby-on-rails ruby-on-rails-3

我有一个Rails模型记录数组.是否可以一次性(查询)急切加载所有这些记录的关联?

有时我只有一个数组而不是AR :: Scope.有时我想动态选择以后急切加载的内容.

lul*_*ala 33

在Rails 3中,可以使用预加载器来加载现有记录上的关联.

ActiveRecord::Associations::Preloader.new(posts,:comments).run()
Run Code Online (Sandbox Code Playgroud)

在Rails 4.1+中,呼叫签名略有改变:

ActiveRecord::Associations::Preloader.new.preload(posts,:comments)
Run Code Online (Sandbox Code Playgroud)

  • Rails4:`ActiveRecord :: Associations :: Preloader.new.preload(posts,:catalogs)` (3认同)
  • 这在 Rails 4.2 中已弃用 (2认同)
  • `ActiveRecord::Associations::Preloader.new.preload(posts,:comments)` 在 Rails 5 中仍然有效! (2认同)