不确定这可能属于性能部分以及模型/数据库部分,所以这里......
假设我有 3 个模型:
Movie {
has_one :interest, :as => :resource
}
Song {
has_one :interest, :as => :resource
}
Story {
has_one :interest, :as => :resource
}
和 ...
Interest {
belongs_to :resource, :polymorphic => true
}
现在,如果我需要所有电影的所有兴趣列表,并且我还想显示这些 Movies 对象的创建日期(说明它们的年龄),那么我使用查找 resource_type 属性,然后使用 @some_interest.resource .created_at。
问题是如果我有 100 个电影兴趣,那么我会得到 101 个查询,对吗?所以线性退化。我尝试在查询调用中使用 :include => [:resource] ,但它说不能在多态关联中使用包含。
我怎样才能急切加载或优化这个问题以避免这种严重的退化?
任何帮助将不胜感激 !!