0

Ceci est le cas: j'ai 4 modèles qui sont « propriétaire », « utilisateur », « emplacement » et « propriétaire ». Tous ces modèles partagent des adresses e-mail et des téléphones. Donc je pense à utiliser Polymorphic Association et j'ai fait une recherche mais je vois juste des cas pour 3 modèles. Dans mon cas, comme vous pouvez le voir, je vais avoir plus de 3 modèles.Rails association polymorphique avec plusieurs modèles

Alors, pensez-vous est une bonne idée de mettre en œuvre ce genre de logique où je veux utiliser un modèle comme le « référentiel » pour tous les e-mails et numéros de téléphone?

Il y a une limite ou quelque chose afin d'utiliser ce genre d'association ?. Je pense à certains modèles comme:

email 
emailable 
user 
owner 
landlord 
location 

Chaque modèle aura ses champs nécessaires.

Merci d'avance.

Répondre

1

Il n'y a pas de limite. Une association polymorphique est une interface ouverte à laquelle tout autre modèle peut se connecter. Dans votre exemple, vous avez peut-être un modèle Contact, dont belongs_to :contactable, polymorphic: true. Le tableau ci-contacts aura besoin de deux colonnes indexées: contactable_id:integer et contactable_type:string. Tout autre modèle peut être contactable, tant que has_one :contact, as: :contactable.

Dans la mesure où c'est une bonne idée, je dirais que si vous pensez que vous aurez besoin de travailler avec contacts comme une entité distincte des modèles contactable, alors c'est une bonne solution. Toutefois, si vous aurez pas besoin de traiter directement avec contacts alors il pourrait être trop compliquer quand vous pouvez simplement ajouter email et phone champs à ces modèles.

+0

Merci pour votre réponse. Basé sur ma description où j'aurais environ 7 modèles avec des emails/téléphones je pense est comme un bon moyen de définir un seul modèle pour cela. Mais je m'ouvre à d'autres idées, parce que je ne veux pas trop compliquer. Dans votre avis professionnel, que suggérez-vous? simo borg? Merci encore – Carlos