LoginSignup
0
0

More than 3 years have passed since last update.

【Rails】 親モデルと子モデルを同時に削除する方法 [dependent: :destroy]

Last updated at Posted at 2021-04-03

結論

dependent: :destroy を記述することで、「親モデルを削除した際にその子モデルも同時に削除」できます。

投稿内容を削除する場合、その投稿に紐づくコメントなども同時にテーブルから削除する時に使用します。

Rubyバージョン

ruby 2.6.5

dependent: :destroyの記述場所

dependent: :destroyは親モデルのアソシエーションのみに記述します。

(親モデル) post.rb
class Post < ApplicationRecord
  has_many :comments, dependent: :destroy 
(子モデル) comment.rb
class Comment < ApplicationRecord
  belongs_to :post

モデルが複数存在する場合

子モデル(comment)に紐づいて、さらに子モデル(like)が存在する場合、追加で「親モデル」にdependent: :destroyを記述します。

comment.rb
class Comment < ApplicationRecord
  has_many :likes, dependent: :destroy

参考リンク

Active Record の関連付け

0
0
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
0