0

これはそうです:私は "所有者"、 "ユーザー"、 "場所"と "家主"の4つのモデルを持っています。これらのモデルはすべてメールアドレスと電話を共有します。だから私はPolymorphic Associationを使うことを考えています。私は研究を行いましたが、私は3つのモデルの事例を見ています。あなたが見ることができる私の場合、私は3つ以上のモデルを持っています。Rails複数のモデルとの多形連想

このようなロジックを実装して、すべての電子メールや電話番号に「リポジトリ」のようなモデルを使用したいと思うと思いますか?

この種の関連付けを使用するには制限がありますか。私はいくつかのモデルのように考えています:

email 
emailable 
user 
owner 
landlord 
location 

各モデルには必要なフィールドがあります。

ありがとうございます。

答えて

1

制限はありません。ポリモーフィックアソシエーションは、他のモデルがプラグインできるオープンインタフェースです。あなたの例では、Contactというモデルがあります(belongs_to :contactable, polymorphic: true)。 contactsテーブルには、2つのインデックス付き列、つまりcontactable_id:integercontactable_type:stringが必要です。他のモデルは、has_one :contact, as: :contactableである限り、contactableとすることができます。

contactableモデルとは別のエンティティとしてcontactsを使用する必要があると思われる場合は、これが良い解決策です。ただし、contactsに直接対処する必要がない場合は、emailフィールドとphoneフィールドをこれらのモデルに追加するだけで、複雑すぎる可能性があります。

+0

あなたの答えをありがとう。私は電子メール/電話で約7つのモデルを持っている私の記述に基づいて、私はそのための単一のモデルを定義する良い方法だと思う。 しかし、私は他のアイデアを開いています。なぜなら、私は過度に複雑にしたくないからです。あなたの専門家の意見では、何を提案しますか?シモボルグ? もう一度おねがいします – Carlos

関連する問題