Un gars pratique qui prend en charge la table lorsque les deux tables que vous souhaitez associer ont une relation «plusieurs à plusieurs».
Quand vous pensez à LINE, un utilisateur appartient à plusieurs groupes. De plus, de nombreux utilisateurs sont invités à rejoindre un groupe. À ce stade, on peut dire que l'utilisateur et le groupe ont une relation «plusieurs à plusieurs».
Il est difficile d'associer une table "plusieurs à plusieurs" telle quelle.
Dans l'exemple précédent, nous avons une table entre les utilisateurs et les groupes qui enregistre les combinaisons. C'est la table intermédiaire. Le but est d'enregistrer la combinaison de l'utilisateur et du groupe, et la colonne a besoin de l'ID utilisateur et de l'ID de groupe.
Utilisez la "méthode has_many" et la "méthode appartient_to" pour créer une association. Du point de vue du fichier de modèle (table), déterminez s'il existe plusieurs ou des modèles uniques (tables) avec lesquels vous souhaitez établir une connexion. ex) l'utilisateur (modèle) has_many groupes Ce n'est plus une histoire anglaise.
group.rb
has_many :user_groups
has_many :users, through: :user_groups
user.rb
has_many :user_groups
has_many :groups, through: :user_groups
user_group.rb
belongs_to :user
belongs_to :group
Utilisez l'option "via" pour les modèles qui ne sont pas directement connectés.
Je posterai sur Qiita pour la première fois de ma vie. Il est destiné à votre propre sortie, mais si vous remarquez quelque chose, veuillez le signaler.
Recommended Posts