LoginSignup
0
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-09-12

はじめに

本番環境にて投稿したデータを削除しようとした際このようなエラーが出ました。
error.jpeg
ローカルではどのようなエラーが出るか確認したところ、スクリーンショット 2019-09-12 18.25.22.png
このようなエラーが出た為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
 以下略

まとめ

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

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