外部キー制約に絡んだエラーが出た。
HerokuにデプロイしたPFで自分の掲示板の一つを削除しようとしたらエラーが発生した。
どう対処したか??
まず以下のコマンドでHerokuのエラーの確認。
heroku logs --tail
そしたら以下のエラーを検知した。
validForeignKey (PG::ForeignKeyViolation: ERROR: update or delete on table "boards" violates foreign key constraint on table "bookmarks"
どうやら外部キー制約に違反をしているらしい。
外部キー制約とは
簡単に説明すると、
「他のテーブルのデータに参照(依存)するようにカラムにつける制約」 という意味である。
「掲示板を削除したらブックマークも消えるけど大丈夫??」 と記載されている感じだと思われる。
そのために掲示板のモデル部分に以下のコマンドを追加した。
board.rb
has_many :bookmarks, dependent: :destroy
dependent:destroyの役割
関連付けられたオブジェクトも同時にdestroyされる。
今回で言うと、掲示板を削除すればブックマークも削除できるようにした。
上記のことをして、エラーを解決させた。
参考