#どんな機能なの?
結論から言うと、dependent: :destroyを使いことによって
親モデルのレコードを削除する際に、それに紐づく子モデルのレコードも同時に削除されます。
#具体的な使い方
dependent: :destroyはモデルのアソシエーションで使います。
例えば下記のようにユーザーとマイクロポストのアソシエーションを定義します。
user.rb
has_many :mictroposts
これだけではユーザーが退会した時、そのユーザーのマイクロポストは残ってしまいます。
そのような場合に下記のようにdependent: :destroyを追加します。
user.rb
has_many :mictroposts, dependent: :destroy
こうすることでユーザー退会時には、そのユーザーのマイクロポストも同時に削除されます。
#最後に
この機能は他に、いいね機能(いいねした投稿、された投稿が削除された場合、LikeModelのレコードも削除する。)やフォロー機能(フォローしたユーザー、されたユーザーが削除された場合、RelationshipModelのレコードも削除する。)など、アソシエーションをいじる場面でよく出てくるので必ず覚えておきたいですね!
また基本、応用関係なくなるほどと思ったことについて日記感覚で投稿していきます!
ありがとうございました!