LoginSignup
1
0

More than 3 years have passed since last update.

Rails Webアプリケーション管理者権限でユーザー削除出来なかったエラー(初心者)

Last updated at Posted at 2019-09-27

動作確認で管理者としてユーザーを削除しようとしたらエラー発生。

忘れないために自分用忘備録

以下エラー文
ActiveRecord::StatementInvalid in UsersController#destroy

Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails・・・・・

原因

dependent: :destroy書き忘れていた為に発生したエラー
要するに、削除しようとしているユーザーの投稿、follower、お気に入り等どうするのって話。

対策

UserテーブルとPostテーブルを関連付けするために以下のコードを追加し、
Userのデータが削除されたときに、関連するPostのデータを削除するように設定。

dependent: :destroy

app/models/user.rb
class User < ApplicationRecord
  has_many :posts, dependent: :destroy
  has_many :follows, dependent: :destroy
  has_many :favorites, dependent: :destroy
end

これでユーザーに関連付けられたデータは削除完了。

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