两个单表继承模型之间的关系
-
19-09-2019 - |
题
我有以下两个模型
class ContactField < ActiveRecord::Base
end
class Address < ContactField
end
class Phone < ContactField
end
和
class Contact < ActiveRecord::Base
end
class Company < Contact
end
class Person < Contact
end
我想一个接触,无论是公司或个人,有许多ContactFields(地址和电话)......那么,我应该把那些有许多和属于? 感谢
解决方案
您已经表示,它用简单的英语:-)
我想一个接触,无论是公司或个人,有许多ContactFields(地址和电话)......那么,我应该把那些有许多属于?感谢
class Contact < ActiveRecord::Base has_many :contact_fields end class ContactField < ActiveRecord::Base belongs_to :contact end
此关系将由两个地址和电话
被继承其他提示
看起来像你描述一个属于关系。该协会应该在父类中由子类来定义,因此它们可以被继承。
class ContactField < ActiveRecord::Base
belongs_to :contact
belongs_to :company, :foreign_key => :contact_id
belongs_to :person, :foreign_key => :contact_id
end
class Contact < ActiveRecord::Base
has_many :contact_fields
has_many :addresses
has_many :phones
end
不过@ contact.contact_fields只返回ContactField记录。如果您需要任何的子类中定义的方法,你可以随时使用变得方式。大约有这几个方面。这种添加额外的关联,像我一样。或使用的ActiveRecord ::基地#变得
不隶属于 StackOverflow