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

现在我想在表格中添加 aguardian_1_id和 a 。我该如何设置?guardian_2_idenrollments

4

1 回答 1

1

您可能最好使用多态关联,例如

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

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

这应该让您在每种情况下是否有 1、2 或更多监护人方面具有一定的灵活性。此外,您可以添加将其限制为两个的验证。

于 2012-07-12T01:26:41.373 回答