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