ツイートを削除しようとしたら、こんなエラーが出た。
ActiveRecord::StatementInvalid in TweetsController#destroy
Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails
僕はただツイートを削除したいだけなのに。。。
# なぜエラーがでたのか
【結論】
tweetsテーブル
とcommentsテーブル
で外部キー制約を結んでいたため。
【commentsテーブル】

外部キーとして、tweet_id
があるのがわかります。
コメントは必ず何かしらのツイートに結びつきます。
勝手にツイートを削除すると、迷子のコメントが現れます!
これがエラーの正体です。
# 解決策 `dependent: :destroy`を追記。 ツイートを削除すると同時に、そのツイートに結びついたコメントも削除します。
app/models/tweet.rb
class Tweet < ApplicationRecord
has_many :comments, dependent: :destroy
end
参考 >https://qiita.com/kemako/items/e98174b9747e0b2c75a6
ではまた!