0

Dies ist der Fall: Ich habe 4 Modelle, die "Besitzer", "Benutzer", "Standort" und "Vermieter" sind. Alle diese Modelle teilen E-Mail-Adressen und Telefone. Also denke ich Polymorphe Assoziation zu benutzen und ich habe eine Recherche gemacht, aber ich sehe nur Fälle für 3 Modelle. In meinem Fall, wie Sie sehen können, werde ich mehr als 3 Modelle haben.Rails Polymorphic Association mit mehreren Modellen

Also, denken Sie, ist es eine gute Idee, diese Art von Logik zu implementieren, wo ich ein Modell wie das "Repository" für alle E-Mails und Telefonnummern verwenden möchte?

Es gibt ein Limit oder etwas, um diese Art der Assoziation zu verwenden ?. Ich denke in einigen Modellen wie:

email 
emailable 
user 
owner 
landlord 
location 

Jedes Modell wird ihre notwendigen Felder haben.

Vielen Dank im Voraus.

Antwort

1

Es gibt keine Begrenzung. Eine polymorphe Assoziation ist eine offene Schnittstelle, in die sich jedes andere Modell einklinken kann. In Ihrem Beispiel haben Sie vielleicht ein Contact Modell, das belongs_to :contactable, polymorphic: true. Die Tabelle contacts benötigt zwei indizierte Spalten: contactable_id:integer und contactable_type:string. Jedes andere Modell kann contactable sein, solange es has_one :contact, as: :contactable ist.

Soweit es eine gute Idee ist, würde ich sagen, wenn Sie denken, dass Sie mit contacts als separate Einheit von den contactable Modellen arbeiten müssen, dann ist dies eine gute Lösung. Wenn Sie jedoch nicht direkt mit contacts umgehen müssen, dann könnte es überkompliziert sein, wenn Sie nur email und phone Felder zu diesen Modellen hinzufügen können.

+0

Danke für Ihre Antwort. Basierend auf meiner Beschreibung, wo ich ungefähr 7 Modelle mit E-Mails/Telefonen haben werde, denke ich, ist eine gute Möglichkeit, ein einzelnes Modell dafür zu definieren. Aber ich öffne mich für andere Ideen, weil ich nicht übermäßig komplizieren will. Was schlägst du deiner Meinung nach @m vor? Simo Borg?. Danke nochmal – Carlos

Verwandte Themen