0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?