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

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

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

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

ActiveRecord::Associations::Preloader.new(posts,:comments).run() 

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

 ActiveRecord::Associations::Preloader.new.preload(posts,:comments) 

好吧,你可以重新绑定那些对象。 在您的数组上映射’:id’,以获取记录的ID,然后重新绑定,这次是急切加载。

如果您的数组,例如Post模型记录是posts ,那么它将是:

 Post.find(posts.map &:id).includes(:blah)