[RUBY] Association (un-à-plusieurs)! !!

Qu'est-ce qu'une association? ?? : information_desk_person_tone1:

** En termes simples, il s'agit d'une association entre des tables utilisant un modèle. Associez les tables entre elles et passez d'un modèle à l'autre C'est pour le rendre accessible. ** **

* Cette fois, nous expliquerons l'association "un-à-plusieurs". Il existe également des associations "plusieurs-à-plusieurs" et "un-à-un". Je le présenterai à un autre moment.

Raisons de l'association

** Dans Rails, il y a deux "associations" C'est la connexion entre les modèles Active Record. ** **

Vous devez faire une association entre les deux modèles, Tu connais la raison?

** C'est vrai, en associant des opérations de code plus courantes C'est simple et facile à faire. ** **

Je ne pense pas que vous puissiez le comprendre même s'il est expliqué avec des mots, alors faites-le plus facilement à imaginer Ci-dessous, une image qui dit que l'association est comme ça.

Exemple: Association (un-à-plusieurs)

アソシエーション.png

L'exemple ci-dessus est basé sur l'image de SNS etc. que vous utilisez souvent. N'est-il pas facile de comprendre si vous l'obtenez? Si "Mr. A" est vous-même, "Post 1" et "Post 4" sont ceux que vous avez publiés. Ce sera le cas. Je pense que cela facilite l'imagination! ?? Lol

Ensuite, j'expliquerai comment l'écrire réellement.

Méthode utilisée lors de la définition d'une association

Je vais vous présenter la méthode utilisée lors de l'écriture.

méthode has_many

** Du point de vue du modèle utilisateur, il existe plusieurs publications créées par un utilisateur. Autrement dit, un utilisateur possède plusieurs publications. ** **

Si vous regardez l'image ci-dessus, "Mr. A" affichera "Post 1" et "Post 4". Cela signifie que vous en possédez plus d'un.

** Cet état est appelé a de nombreuses relations, Dans ce cas, on peut dire qu'il est dans l'état "L'utilisateur a beaucoup de Tweets". ** **

***   「User has many Tweets」 (M. A a de nombreux postes 1 et 4) ***

Pour faire cette association, la méthode ** has_many </ font> ** montre qu'il existe une connexion "un-à-plusieurs" entre l'utilisateur et les autres modèles.

Vous pouvez facilement comprendre ce qui est expliqué en regardant l'image ci-dessous.

has many.png

appartient_to, méthode

** Un message est publié par un utilisateur. En d'autres termes, une publication appartient toujours à un utilisateur car plusieurs personnes ne peuvent pas publier une publication. ** **

Dans l'image ci-dessus, "Post 1" a été posté par "Mr. A". En d'autres termes, vous ne pouvez pas publier le même message que "Post 1" tel que "Mr. B". «Post 1» signifie que vous appartenez à «Mr. A».

** Cet état est appelé la relation appartient à, et dans ce cas, on peut dire qu'il s'agit de l'état "Tweet appartient à l'utilisateur". ** **

               「Tweet belongs to User」

(Le poste 1 appartient à M. A)

La méthode ** appartient_to </ font> ** montre qu'il existe une connexion "one-to-one" entre le modèle Tweet et un autre modèle (utilisateur).

belongs_to.png

Cette fois, nous avons toutes les méthodes nécessaires pour écrire. Écrivons-le réellement! !!

Comment définir une association

Veuillez vous référer aux explications jusqu'à présent, puis à ce que vous pouvez imaginer Écrivez-le! Dans cet exemple, j'aimerais utiliser le modèle utilisateur et le modèle Tweet comme nom de modèle.

Tout d'abord, je vais donner un exemple du modèle de l'utilisateur (M. A).

models/user.rb

class User < ApplicationRecord
  
  has_many :tweets
end

La façon de l'écrire est has_many: nom du modèle (pluriel). La raison pour laquelle il devient pluriel est que l'utilisateur (M. A) le possède. C'est parce qu'il y a plusieurs messages (messages 1 et 4).

C'est tout pour le modèle User.

Enfin, je donnerai un exemple du modèle Tweet.

models/tweet.rb

 
  belongs_to :user
end

La façon de l'écrire est appart_to: nom du modèle (forme unique). Un message appartient à un utilisateur (M. A) Cela devient une forme singulière.

Vous avez maintenant une association entre le modèle Tweet et le modèle Utilisateur.

Résumé

** 1. L'association est l'association entre les tables utilisant un modèle **

** La méthode 2.belongs_to est une association "un-à-un" entre un modèle et un autre modèle. Dans la méthode utilisée dans le cas, il devient une association dépendante **

** 3. La méthode has_many est une association "un-à-plusieurs" entre un modèle et d'autres modèles. Dans la méthode utilisée au cas où, il sera lié au propre **

*** Cette fois, j'ai expliqué l'association "un-à-plusieurs". En outre, il existe des associations "un-à-un" et "plusieurs-à-plusieurs", ce qui Je voudrais l'expliquer à un autre moment. Cela peut prêter à confusion, mais l'association "un-à-plusieurs" est J'espère que vous comprendrez à quoi cela ressemble. *** ***

Merci beaucoup!

Recommended Posts