【问题标题】:Model Structure for adding extra attributes to sub-class of a rails model用于向 Rails 模型的子类添加额外属性的模型结构
【发布时间】:2012-09-11 22:07:49
【问题描述】:

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

class Contact < ActiveRecord::Base

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

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

我想要这样的行为:

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

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

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

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

附:我不想序列化任何数据。

谢谢!

【问题讨论】:

    标签: ruby-on-rails attributes models relationships


    【解决方案1】:

    无论如何,您都可以将这些字段添加到联系人表中,并仅在需要时使用它们。 或者,您可以拥有多张桌子。

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

    【讨论】:

    • 在这种情况下,我必须在联系人表中添加大约 50 个额外的列,其中大部分对于每条记录都是空的。随着数据库的增长,这会导致任何可预见的问题吗?
    • 我也有同样的问题。如果您找到解决方案,请通知我
    • @shyamkkhadka 我最终创建了一个名为 :contact_data 的列并将所有额外的序列化数据存储在其中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多