[Rails]本番環境でWe're sorry, but something went wrongのエラーが出る。


はじめに

本番環境にて投稿したデータを削除しようとした際このようなエラーが出ました。

ローカルではどのようなエラーが出るか確認したところ、
このようなエラーが出た為DBの問題か?と考えましたがどうやらいいね機能に原因があるらしく、いいねがされてる投稿を削除をする事が出来なくなっていました。

なぜこのようなエラーが出るか?

この記事を参考にした所
https://qiita.com/Ushinji/items/650fa295a3054d2fe582
どうやら外部キー制約のついたカラムを削除する必要があるらしく、dependent: :destroyを設定する必要があるみたいです。今回はvideo.rbに記述漏れがあったのでその記述を追加しました。

記述例

video.rb
class Video < ApplicationRecord
  mount_uploader :image, VideoUploader
  belongs_to :user
  has_many :likes, dependent: :destroy
  has_many :liked_users, through: :likes, source: :user
  has_many :comments
end
user.rb
class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
  has_many :videos, dependent: :destroy
  has_many :likes, dependent: :destroy
  has_many :liked_videos, through: :likes, source: :video
 以下略

まとめ

あまり見慣れないエラーだったので、少々焦りました。機能実装の際はコピペだけでなく、なぜこの記述が必要なのか理解する事も大事ですね。
ローカルでの動作確認も怠っていたので、次からはしっかり確認するように気をつけていこうと思います。