【发布时间】:2012-01-28 09:09:35
【问题描述】:
这是我的模型:
class User < ActiveRecord::Base
has_many :activities
has_many :requests
class Activity < ActiveRecord::Base
belongs_to :user
belongs_to :object, :polymorphic => true
我想获取所有用户的活动并显示它们
Activity.where(:user_id => current_user.id).include(:object)
问题是我不能急切加载对象模型,因为它是多态的 我该如何克服这个问题?
【问题讨论】:
-
我可以使用具有类似多态关联的包含(Rails 3.1)。当你尝试时会发生什么?
-
还有一点要注意:如果您在 Rails 控制台上测试它以查看生成的 sql(总结其不是急切加载),那么请确保您在 where 子句中使用对象的属性或您的选择子句。 Rails 可能不会急切加载作为对查询的优化(当不需要时,至少我认为它是一种优化)。
标签: ruby-on-rails optimization feed