0

というテーブルがenrollmentsあり、これが現在の基本的な登録設定である場合:

class Enrollment < ActiveRecord::Base      
  belongs_to :father
  belongs_to :mother
  belongs_to :child
end

class Father < ActiveRecord::Base
  has_many :enrollments
  has_many :children
  validates :first_name, :presence => true
  validates :last_name, :presence => true
end

guardian_1_idここで、 aと aguardian_2_idenrollmentsテーブルに追加します。どうすればそれを設定できますか?

4

1 に答える 1

1

ポリモーフィックな関連付けを使用するのが最善かもしれません。

class Enrollment 
  belongs_to :enrollable, :polymorphic => true
end

class Father
 has_many :enrollments, :as => enrollable
end

これにより、状況ごとに 1 人、2 人、またはそれ以上のガーディアンがいるという点で、ある程度の柔軟性が得られます。また、2 つに制限する検証を追加することもできます。

于 2012-07-12T01:26:41.373 に答える