我的问题是如何从多态模型中加入belongs_to关联。以下是情况:
opinion.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(:opinionable).all
它会抛出以下异常:
ArgumentError: You can't create a polymorphic belongs_to join without specifying the polymorphic class!
如何指定要加入的类?
第二个问题是如何预加载它?
Opinion.preload(:opinionable).all
这样可以正常工作。它将为belongs_to中的每个类执行查询。
但是,如果我想做以下操作:
Opinion.preload(:opinionable => :answer_form).all
因为一个模型具有此关联而另一个模型没有,所以会抛出异常。
那么我该如何做以下操作:
Opinion.preload(:answer => :answer_form, :another_belongs_to_model).all
?
谢谢,David!