Générer un modèle avec des associations ActiveRecord
Gens,
Je suis en train de travailler sur la création d'une application dans laquelle j'ai deux entités dans mon espace de problème. Une entité est "biologiste" et de l'autre entité est "l'expérience" aujourd'hui l'un biologiste peut avoir de nombreuses expériences, et chaque expérience peut avoir de nombreuses biologiste.
Je sais comment créer des modèles et des routes en utilisant le générateur de ligne de commande:
rails generate scaffold Biologist name:string expertise:string last_pub:text
Quelle est la bonne façon d'ajouter une association? Est-il d'aller et de mettre à jour le code du modèle après génération? Ce qui est clair pour moi est que si j'ajoute un "belongs_to" association génération post comment cela se reflète dans la base de données de schéma sans le déroulement de la migration ou de quelque chose? Dans l'exemple ci-dessus si "l'expérience" appartient à "biologiste" puis il y aura une clé étrangère dans la "biologiste" de la table, que va être créé si j'ajoute les associations dans la classe du modèle post-génération. Je suis relativement nouveau pour les rails, donc je m'excuse si c'est une question naïve.
source d'informationauteur user1781472
Vous devez vous connecter pour publier un commentaire.
Vous devez créer une migration pour ajouter un
biologist_id
colonne à laexperiments
table, puis ajouter lebelongs_to :biologist
relation dans votreexperiments
modèle.Vous pouvez trouver plus de détails ici.
Je pense que vous êtes à la recherche de quelque chose comme ce qui suit:
Lire cet article par Jose Valim où il vous montre comment faire ci-dessus, et également ajouter des index de base de données à partir de la ligne de commande:
Je voudrais créer un modèle pour chaque chaque et ensuite de créer une table de jointure puisque vous avez a beaucoup a beaucoup de relation. Si vous suivez convention, les rails doivent comprendre la relation donnée de votre table de jointure.
En général, si vous avez besoin de modifier active relations d'enregistrement, vous devez le faire dans le modèle à l'aide d'un has_many ou has_and_belongs_to_many relation.