ЯoomeR

プログラミング~実装とエラー解決と、時々、AI~

アソシエーションとは

モデル間の関連付けである

例えばTwitterの場合、「太郎さん」は複数の「投稿」を行います。

この時、「太郎さん」とそれぞれの「投稿」は紐づいています。

(Twitterで太郎さんのページに行くとTweet一覧が見れますよね?)

これは「ユーザーのモデル」と「投稿のモデル」が関連づいているから実現できるのです。

ルール

①モデルクラスにhas_manyやbelongs_toで関連性を記述する。

(1人のユーザーは複数の投稿を有するので、Userモデルはhas_many tweets。

投稿は1人のユーザーに属するので、Twwetsモデルはbelongs_to user。)

②has_many (モデル名の複数形) 、belongs_to(モデル名の単数形)で記述する。

※モデル?テーブル?となった時は「1つのモデルは1つのテーブルに紐づいている」という点に立ち返りましょう。

#Userモデル(user.rb)
has_many tweets

#Tweetモデル(tweet.rb)
belongs_to user

おすすめの記事

ActiveRecordの関連付け