0

J'ai une application avec 2 groupes de modèles - basé sur le contenu (nouvelles, questions) et "quelque chose" basé (appareils, applications, etc). J'ai besoin de relier tous les modèles entre les groupes - par exemple la question peut appartenir à 3 choses différentes - une application et 2 appareils. La même chose - pour les nouvelles. De l'autre côté - j'ai besoin de voir tous les articles de nouvelles et les questions liées à une application ou un appareil.bidirectionnel habtm linking

Une idée de comment développer cela dans les rails? Je n'ai qu'une idée: les mixins qui ajouteront les méthodes content_id et thing_id aux modèles et à la table de jointure.

Répondre

1

Vous pourriez utiliser thing_id, thing_class, content_id, content_class uniquement dans la table de jointure et effectuer une recherche avec des conditions, habtm serait imposible. "2, 'Devise', page ', 2" "2, 'Devise', 'Publicité', 4" "2, 'AnotherThing', 'Page', 2"

Et puis chercher tous pages pour thing à partir de la table de jointure où id = self.id ET thing_class = self.class.name ET contant_class = Page.class.name

Si vous devez utiliser l'association habtm, vous pouvez utiliser l'association STI + 1: 1, mais gâchera les choses encore plus