きっかけ
アプリ作成を復習中に???となりましたので、復習として、投稿します。
dependent: :destroyオプションとは
dependentオプションとは親モデルを削除した時に、
親モデルと関連している子モデルに対する挙動を指定するオプションです。
<例>
1つのツイートに対して5つのコメントがあるとします。
そのツイートが削除されたら、それに付随する5つのコメントも削除されるべきです。
その場合、Tweetモデル(親モデル)に関連している
Commentモデル(子モデル)のdependentオプションに、:destroyを指定します。
実際のコード
モデルのアソシエーションに追記します
class Tweet < ApplicationRecord
has_many :comments, dependent: :destroy
end
上記記述により、
tweetsテーブルのレコードが削除された場合、
関連しているcommentsテーブルのレコードも同時にdestroyメソッドが実行され、一緒に削除されます。