0

这种情况下:我有4个模型是“所有者”,“用户”,“位置”和“房东”。所有这些模型都共享电子邮件地址和电话。所以我想使用多态协会,我做了一个研究,但我只看到3个模型的案例。就我而言,你可以看到我会有3个以上的模型。多种模型导轨多态协会

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

为了使用那种关联有一个限制或某些东西?我想在一些模型,如:

email 
emailable 
user 
owner 
landlord 
location 

每个模型将有他们必要的领域。

在此先感谢。

回答

1

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

至于如果它是一个好主意,我想,如果你认为你将需要contacts工作从contactable模型一个独立的实体说,那么这是一个很好的解决方案。但是,如果您不需要直接处理contacts,那么当您只需将emailphone字段添加到这些模型时,它可能会过于复杂。

+0

感谢您的回答。根据我的描述,我将有大约7款带电子邮件/电话的模型,我认为这是定义单一模型的好方法。 但我打开其他想法,因为我不想过分复杂。在你的专业意见中,你有什么建议@m。西莫博格? 再次感谢 – Carlos