初アウトプット

初アウトプット

初めてのアウトプットになるので暖かい目で見ただければ幸いです。 コメント機能を実装したく、アソシエーションのどこから手をつけていいのか分からなかったので、アウトプットして理解を深めていこうと思います。

アソシエーションとは

モデル間の(主従関係)を管理する機能で、定義しておくことでモデルをまたいだデータのやり取りを簡単に行うことができる。

1.アソシエーションを定義する

モデルクラスにhas_many , belongs_toを定義 

UserとBoardの関係が一対Nの場合
Userモデルに下記のコードを記述 has_many:boards,dependent::destroy
Boardモデルにはbelongs_to :userと記述
dependent: :destroy
親要素が消えたときに 子要素も消してくれるオプション
これを書くと親要素を消したときに 子要素も一緒に消してくれて、 エラーが起こることを防いでくれる。

has_manyは複数形、
belongs_toは単数系でモデル名を書く。

2.アソシエーションを実装する

アソシエーション未使用
user = User.find(1)
Board.where(user_id: user.id)
アソシエーション使用時
user = User.find(1)
user.tweets

ここではusersテーブルのidが「1」のユーザーが保有している , 掲示板(board)を「全て」取得するという記述になっている。

参考にしたサイト

【初心者向け】丁寧すぎるRails『アソシエーション』チュートリアル【幾ら何でも】【完璧にわかる】🎸 - Qiita