0

グーグルでフォーラムを検索しましたが、私のシナリオに合った答えが見つからないようです。

次のモデルがあるとします。

class TextProblem < ActiveRecord::Base
   belongs_to :askable, :polymorphic => true
   ...
end

class MultipleChoice < ActiveRecord::Base
   belongs_to :askable, :polymorphic => true
   ...
end

class WordMatch < ActiveRecord::Base
  belongs_to :askable, :polymorphic => true
  ...
end

これで、質問と呼ばれる別のモデルができました。これには、質問のタイプを示す question_type_id という名前のフィールドと、askables の 1 つへの外部キーである question_id という名前のフィールドがあります。

class Question < ActiveRecord::Base
    has_one :askable, :foreign_key => 'question_id' ....  
end

正しいaskableを与えますが、関連付けの書き方がわかりません。私はこれを正しく見ていますか、それとも別の方法でこれを達成しようとすべきですか?

どんな助けでも大歓迎です!

4

1 に答える 1

0

あなたはあなたの協会を逆にするべきです

class Question < ActiveRecord::Base
    belongs_to :askable, :polymorphic => true 
end

class TextProblem < ActiveRecord::Base
   has_many :questions, :as => :askable
   ...
end

class MultipleChoice < ActiveRecord::Base
   has_many :questions, :as => :askable
   ...
end

class WordMatch < ActiveRecord::Base
 has_many :questions, :as => :askable
  ...
end

これを参照してください。

于 2013-06-06T17:13:54.943 に答える