2

私はこれらの3つのモデルを持っています

class User < ActiveRecord::Base
  has_many :answers, :as => :owner
end

class Answer < ActiveRecord::Base
  belongs_to :owner, :polymorphic => true
  has_one :test  
end

class Test < ActiveRecord::Base
  belongs_to :answer
end

そのため、モデル間に新しい関連付けを作成する必要なく、モデルを介してモデルTestをモデルに関連付けたいので、次をテストモデルに入れます。UserAnswer

has_one :owner, :through => :answer

しかし、それは機能せず、このエラーが発生しました

ActiveRecord::HasManyThroughAssociationPolymorphicSourceError: Cannot have a has_many :through association 'Test#owner' on the polymorphic object 'Owner#owner'.

助けはありますか?

4

2 に答える 2

1

Test

delegate :owner, :to => :answer
于 2012-06-26T04:05:42.410 に答える
0

多態的な関連付けであるため、source_typeオプションを指定する必要がありますowner

class Test < ActiveRecord::Base
  belongs_to :answer
  has_one :owner, :through => :answer, :source_type => "User"
end
于 2012-06-26T06:52:33.650 に答える