用于将额外属性添加到rails模型的子类的模型结构

时间:2012-09-11 22:07:49

标签: ruby-on-rails attributes models relationships

我有一个名为“联系人”的导轨模型,其中包含法律信息的基本联系信息,如电子邮件,电话,姓名等。它看起来像这样:

class Contact < ActiveRecord::Base

  attr_accessible :name, :phone, :email, :city, :state, :zip_code

根据他们的联系类型,他们需要具有彼此不同的其他属性。

我喜欢这样的行为:

class DisabilityContact < Contact 
    attr_accessible :employed, :medical_condition, :represented

但这是不可能的,因为DisabilityContact使用的“Contact”表不包含那些额外的字段。我想建议如何构建我的模型和关系,以便能够设置这些属性,例如:

@contact = DisabilityContact.create
@contact.employed =  true

OR

@contact = DisabilityContact.create
@contact.special_attributes.employed = true

P.S。我不想序列化任何数据。

谢谢!

1 个答案:

答案 0 :(得分:0)

您仍可以将字段添加到联系人表格中,并仅在需要时使用它们。 或者您可以拥有多个表格。

文章Single Table Inheritance in Rails可能会对您有所帮助。