【问题标题】:Rails Polymorphic Association with multiple modelsRails 与多个模型的多态关联
【发布时间】:2018-01-05 17:18:42
【问题描述】:

是这样的:我有 4 个模型,分别是“所有者”、“用户”、“位置”和“房东”。所有这些模型共享电子邮件地址和电话。所以我正在考虑使用多态关联并进行了研究,但我只看到了 3 个模型的案例。如您所见,就我而言,我将拥有 3 个以上的模型。

那么,你认为实现这种逻辑是一个好主意吗?我想为所有电子邮件和电话号码使用像“存储库”这样的模型?

为了使用这种关联有一个限制或什么?我正在考虑一些模型,例如:

email
emailable
user
owner
landlord
location

每个模型都有其必要的字段。

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby database associations polymorphic-associations


    【解决方案1】:

    没有限制。多态关联是任何其他模型都可以插入的开放接口。在您的示例中,也许您有一个Contact 模型,它是belongs_to :contactable, polymorphic: truecontacts 表需要两个索引列:contactable_id:integercontactable_type:string。其他任何型号都可以contactable,只要has_one :contact, as: :contactable即可。

    如果这是一个好主意,我会说如果您认为您需要将contacts 作为与contactable 模型分开的实体使用,那么这是一个很好的解决方案。但是,如果您不需要直接处理 contacts,那么在这些模型中添加 emailphone 字段可能会过于复杂。

    【讨论】:

    • 感谢您的回答。根据我的描述,我将有大约 7 个带有电子邮件/电话的模型,我认为这是定义单个模型的好方法。但我对其他想法持开放态度,因为我不想过于复杂。在您的专业意见中,您有什么建议@m。西莫博格?再次感谢
    猜你喜欢
    • 2011-01-30
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多