多种模型导轨多态协会
问题描述:
这种情况下:我有4个模型是“所有者”,“用户”,“位置”和“房东”。所有这些模型都共享电子邮件地址和电话。所以我想使用多态协会,我做了一个研究,但我只看到3个模型的案例。就我而言,你可以看到我会有3个以上的模型。多种模型导轨多态协会
那么,你认为实现这种逻辑的好主意,我想在所有电子邮件和电话号码中使用类似“存储库”的模型吗?
为了使用那种关联有一个限制或某些东西?我想在一些模型,如:
email
emailable
user
owner
landlord
location
每个模型将有他们必要的领域。
在此先感谢。
答
没有限制。多态关联是任何其他模型都可以插入的开放接口。在你的例子中,也许你有一个Contact
模型,其中belongs_to :contactable, polymorphic: true
。 contacts
表需要两个索引列:contactable_id:integer
和contactable_type:string
。任何其他型号可以是contactable
,只要它has_one :contact, as: :contactable
。
至于如果它是一个好主意,我想,如果你认为你将需要contacts
工作从contactable
模型一个独立的实体说,那么这是一个很好的解决方案。但是,如果您不需要直接处理contacts
,那么当您只需将email
和phone
字段添加到这些模型时,它可能会过于复杂。
感谢您的回答。根据我的描述,我将有大约7款带电子邮件/电话的模型,我认为这是定义单一模型的好方法。 但我打开其他想法,因为我不想过分复杂。在你的专业意见中,你有什么建议@m。西莫博格? 再次感谢 – Carlos