Railsアプリケーションにおけるアソシエーションについて(Ruby on Rails)

 ※この記事は私自身のアウトプットの記事です。プログラミング解説記事ではございませんのでご了承ください。

アソシエーションとは
 モデルを利用したデータベース内の異なるテーブル(データを表形式で収納する場所)同士を関連付けて情報を紐づけること。アソシエーションをモデルに定義することによりそのモデルに関連付けた他のモデルの情報の取得が可能になる。
 例としてUserモデルに対して、一人のユーザーは複数の情報(Twitterに例えるとツイート)を保持しているので、models/user.rbにてhas_many :tweetsと定義する。

app/models/user.rb
class User < ApplicationRecord
(省略)
 has_many :tweets
end

 ユーザーモデルに関連付けられたもう一方のモデル(例としてTweetモデル)に対しては、ある一つの情報(ツイート)は一人のユーザーに所属しているので、models/tweet.rbにてbelongs_to :userと定義する。

app/models/tweet.rb
class Tweet < ApplicationRecord
 (省略)
 belongs_to :user
end

 以上の定義により、モデルを利用した異なるテーブル同士の関連付けが完了になる。情報を紐付けたい各モデルに記述するhas_manybelongs_toの関係の理解が重要になる。すなわち「A has many B」と「B belongs to A」の状態であることを理解する。

この記事が気に入ったらサポートをしてみませんか?