初アウトプット
初アウトプット
初めてのアウトプットになるので暖かい目で見ただければ幸いです。 コメント機能を実装したく、アソシエーションのどこから手をつけていいのか分からなかったので、アウトプットして理解を深めていこうと思います。
アソシエーションとは
モデル間の(主従関係)を管理する機能で、定義しておくことでモデルをまたいだデータのやり取りを簡単に行うことができる。
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