【发布时间】:2011-08-14 11:33:37
【问题描述】:
我的问题如下。如何从多态模型加入belongs_to 关联
有情况
意见.rb
class Opinion < ActiveRecord::Base
belongs_to :opinionable, :polymorphic => true
belongs_to :category
end
answer.rb
class Answer < ActiveRecord::Base
has_many :opinions, :as => :opinionable
end
我该怎么做
Opinion.joins(:opinionabe).all
它会抛出
ArgumentError: You can't create a polymorphic belongs_to join without指定多态类!
如何确定我想参加哪个课程?
第二个问题。如何预加载?
Opinion.preload(:opinionable).all
工作正常。它将查询belongs_to中的每个类。
但是。如果我想做类似的事情
Opinion.preload(:opinionable => :answer_form).all
存在问题,因为一个模型具有此关联,而第二个模型没有。所以它会抛出异常。
那么我该怎么做呢
Opinion.preload(:answer => :answer_form, :another_belongs_to_model).all
?
谢谢,大卫!
【问题讨论】:
标签: ruby-on-rails activerecord join preload polymorphism