LoginSignup
0
1

More than 3 years have passed since last update.

【Rails】 dependent: :destroy とは

Posted at

どんな機能なの?

結論から言うと、dependent: :destroyを使いことによって
親モデルのレコードを削除する際に、それに紐づく子モデルのレコードも同時に削除されます。

具体的な使い方

dependent: :destroyはモデルのアソシエーションで使います。
例えば下記のようにユーザーとマイクロポストのアソシエーションを定義します。

user.rb
has_many :mictroposts

これだけではユーザーが退会した時、そのユーザーのマイクロポストは残ってしまいます。
そのような場合に下記のようにdependent: :destroyを追加します。

user.rb
has_many :mictroposts, dependent: :destroy

こうすることでユーザー退会時には、そのユーザーのマイクロポストも同時に削除されます。

最後に

この機能は他に、いいね機能(いいねした投稿、された投稿が削除された場合、LikeModelのレコードも削除する。)やフォロー機能(フォローしたユーザー、されたユーザーが削除された場合、RelationshipModelのレコードも削除する。)など、アソシエーションをいじる場面でよく出てくるので必ず覚えておきたいですね!

また基本、応用関係なくなるほどと思ったことについて日記感覚で投稿していきます!
ありがとうございました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1