124 votes

Migration de has_and_belongs_to_many rails 3

J’ai deux modèles et que je veux faire une relation has_and_belongs_to_many.

J’ai déjà entré dans les fichiers de modèle et ajouté la et

À ce stade, je suppose que je devrais être capable de faire quelque chose comme avec 3 Rails :

mais tout ce que j’ai essayé semble échouer. Je suis sûr que c’est quelque chose de vraiment simple, que je suis nouveau sur les rails, donc je suis encore à apprendre.

267voto

Dex Points 4871

Vous devez ajouter une table de jonction séparée avec seulement un et (pas de clé primaire), dans l’ordre alphabétique.

Rails de 3 :

Rails 4 (à partir de commentaire de Fa11enAngel) :

Votre fichier de migration (remarque le `` ; c’est ce qui empêche la création d’une clé primaire) :

Modifier Débarrassé de la redondance dans les indices.

26voto

shacker Points 3348

Lorsque vous créez la table de jonction, être très attentif à l’exigence selon laquelle les deux tables doivent figurer dans l’ordre alphabétique dans la migration nom/classe. Cela peut facilement vous mordre si vos noms de modèle sont semblables, par exemple, « abc » et « abb ». Si vous deviez exécuter

Vos relations seront ne fonctionnera pas comme prévu. Vous devez utiliser

au lieu de cela.

6voto

Mohit Jain Points 9959

Pour les relations liés HABTM, vous devez créer un modèle de jointure. Il n’y a seulement des table de jonction, et cette table n’ait pas une colonne id. Essayez cette migration.

Vous devez vérifier cette relation rails guide tutoriels

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X