0

Je travaille sur une application dans laquelle je suis coincé décider d'une relation. La situation est la suivante:Rails - Quelles sont les bonnes relations entre les tables à trois voies?

Les relations sont mises en œuvre:

Category has_many Items 
Outlets HABTM Categories 

Le problème est que les points doit avoir plusieurs à plusieurs avec le modèle de l'article. Maintenant, je peux le mettre en œuvre aime simplement:

Outlet HABTM Items 

qui me donnera une table avec outlet_id et item_id mais dans ce cas, je ne suis pas sûr de savoir comment trouver la liste des articles pour une prise pour l'une des catégories attribuées à lui.

J'ai également vu l'exemple has_many :through mais il suggère également d'avoir deux clés étrangères dans la table; Je crois qu'il devrait y avoir trois dans ce cas, outlet_id, category_id, item_id, où dans la combinaison de tous les 3 sera unique.

Je peux implémenter cela facilement en utilisant des requêtes SQL brutes mais je n'ai pas encore utilisé de requêtes brutes, et je veux éviter autant que possible. Comment puis-je le faire correctement en utilisant des relations de modèle?

Répondre

0

Je fais comme simplement:

Outlet has_many categories & Category has_many items 

De cette façon, nous pouvons obtenir toutes les items pour un category spécifique dans un outlet et peut également obtenir tous les éléments pour un outlet par categories.