Rails 急切加载
Posted
技术标签:
【中文标题】Rails 急切加载【英文标题】:Rails eager loading 【发布时间】:2010-05-24 10:25:39 【问题描述】:嗨, 我有一个测试模型,它有_很多问题,还有一个问题,它有_很多答案...... 当我使用 :include => [:questions, :questions => :answers] 对测试进行查询时,ActiveRecord 会再进行两个查询以获取问题然后获取答案 - 它不会加入它们! !当我使用 :joins ActiveRecord 进行查询时,会进行查询,但稍后当我需要 Test.questions 或 Test.questions.answers ActiveRecord 时会再次进行这两个额外的查询!!!后来,当我在日志中枚举问题或答案时,我看到每个对象的其他查询,但它有缓存标记...
这正常吗?
【问题讨论】:
:include => :questions => :answers
即可,无需指定:questions
两次。
类似问题***.com/questions/1208636/rails-include-vs-joins
【参考方案1】:
我同意 shteef,当您执行以下操作时会发生什么:
:include => :questions => :answers
【讨论】:
以上是关于Rails 急切加载的主要内容,如果未能解决你的问题,请参考以下文章