【发布时间】:2010-05-24 10:25:39
【问题描述】:
嗨, 我有一个测试模型,它有_很多问题,还有一个问题,它有_很多答案...... 当我使用 :include => [:questions, {:questions => :answers}] 对测试进行查询时,ActiveRecord 会再进行两个查询以获取问题然后获取答案 - 它不会加入它们! !当我使用 :joins ActiveRecord 进行查询时,会进行查询,但稍后当我需要 Test.questions 或 Test.questions.answers ActiveRecord 时会再次进行这两个额外的查询!!!后来,当我在日志中枚举问题或答案时,我看到每个对象的其他查询,但它有缓存标记...
这正常吗?
【问题讨论】:
-
:include => { :questions => :answers }即可,无需指定:questions两次。
标签: ruby-on-rails eager-loading