Rails 与多个模型的多态关联
Rails Polymorphic Association with multiple models
是这样的:我有4个模型,分别是"owner"、"user"、"location"和"landlord"。所有这些模型共享电子邮件地址和电话。所以我正在考虑使用多态关联并且我进行了研究,但我只看到了 3 个模型的案例。如您所见,就我而言,我将拥有 3 个以上的模型。
那么,您认为在我想对所有电子邮件和电话号码使用 "repository" 这样的模型的情况下实现这种逻辑是个好主意吗?
使用那种关联有什么限制吗?。我在考虑一些模型,例如:
email
emailable
user
owner
landlord
location
每个模型都有必要的字段。
提前致谢。
没有限制。多态关联是任何其他模型都可以插入的开放接口。在您的示例中,也许您有一个 Contact
模型,其中 belongs_to :contactable, polymorphic: true
。 contacts
table 将需要两个索引列:contactable_id:integer
和 contactable_type:string
。任何其他型号都可以 contactable
,只要它 has_one :contact, as: :contactable
.
至于它是否是个好主意,我想说的是,如果您认为您需要将 contacts
作为与 contactable
模型分开的实体来工作,那么这是一个很好的选择解决方案。但是,如果您不需要直接处理 contacts
那么当您可以向这些模型添加 email
和 phone
字段时可能会过于复杂。
是这样的:我有4个模型,分别是"owner"、"user"、"location"和"landlord"。所有这些模型共享电子邮件地址和电话。所以我正在考虑使用多态关联并且我进行了研究,但我只看到了 3 个模型的案例。如您所见,就我而言,我将拥有 3 个以上的模型。
那么,您认为在我想对所有电子邮件和电话号码使用 "repository" 这样的模型的情况下实现这种逻辑是个好主意吗?
使用那种关联有什么限制吗?。我在考虑一些模型,例如:
email
emailable
user
owner
landlord
location
每个模型都有必要的字段。
提前致谢。
没有限制。多态关联是任何其他模型都可以插入的开放接口。在您的示例中,也许您有一个 Contact
模型,其中 belongs_to :contactable, polymorphic: true
。 contacts
table 将需要两个索引列:contactable_id:integer
和 contactable_type:string
。任何其他型号都可以 contactable
,只要它 has_one :contact, as: :contactable
.
至于它是否是个好主意,我想说的是,如果您认为您需要将 contacts
作为与 contactable
模型分开的实体来工作,那么这是一个很好的选择解决方案。但是,如果您不需要直接处理 contacts
那么当您可以向这些模型添加 email
和 phone
字段时可能会过于复杂。