如何为模型记录数组加载关联
我有一组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)
- 在Ruby on Rails中使用Plucked Values
- Rails rake db:migrate没有任何影响
- 独立ruby – 如何从database.yml加载不同的环境
- Rails:使用has_many / belongs_to关系进行排序
- 重命名ActiveRecord / Rails的created_at,updated_at列
- Rails不会找到CSV固定装置
- activerecord -3.1.11出错无法找到表(ActiveRecord :: Statement Invalid)
- 如何validation提交ActiveRecord的单个属性而不是其所有属性?
- 当某些东西存储为数组时,Rails where子句