2010-05-18 4 views

Répondre

6

Il n'y a rien de mal à utiliser habtm en soi. La raison pour laquelle beaucoup de gens n'utilisent pas ce type d'association est qu'ils utilisent has_many: through à la place. Pourquoi? Parce que c'est plus polyvalent. Alors que HABTM "cache" la table intermédiaire, lorsque vous utilisez has_many: à travers l'intermédiaire, l'homme est une ressource par elle-même - ce qui est généralement une bonne chose (si rien n'est fait, vous pouvez horodater la relation). Vous rencontrerez de nombreuses situations où vous devrez ajouter un comportement ou des attributs à une telle relation (lors de la conception d'un système orienté vers les ressources).

+0

Je commence à voir la signification de ceci moi-même ... la flexibilité ajoutée est vraiment bénéfique à mesure que les spécifications changent. Curieux, cependant: si j'ai eu une relation habtm entre les utilisateurs et les repas, mais j'ai maintenant besoin de la table intermédiaire, comment j'appellerais la table intermédiaire? Est-ce une toute nouvelle ressource appelée meal_user ou quelque chose? – dmonopoly

+0

Je me rends compte qu'il s'agit d'une question plus ancienne, mais habituellement vous l'appelleriez quelque chose à faire avec les autres attributs et le but de les stocker, car c'est maintenant une nouvelle ressource. Par exemple, s'il s'agit d'une note de repas sur 5, cela peut comprendre la ressource «évaluation». –

Questions connexes