我有一组Rails模型记录。是否可以一次性(查询)急切加载所有这些记录的关联?
有时我只有一个数组而不是AR :: Scope。有时我想动态选择以后急切加载的内容。
答案 0 :(得分:31)
在Rails 3中,可以使用preloader来加载现有记录上的关联。
ActiveRecord::Associations::Preloader.new(posts,:comments).run()
在Rails 4.1+中,呼叫签名changed slightly:
ActiveRecord::Associations::Preloader.new.preload(posts,:comments)
答案 1 :(得分:3)
好吧,你可以重新绑定那些对象。在你的数组上映射':id',获取记录的ID,然后重新引导,这次是急切加载。
如果您的Post
模型记录数组是posts
,那么它将是:
Post.find(posts.map &:id).includes(:blah)