#動作確認で管理者としてユーザーを削除しようとしたらエラー発生。
忘れないために自分用忘備録
以下エラー文
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
これでユーザーに関連付けられたデータは削除完了。