Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@dir_sh0606

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

More than 1 year has passed since last update.

はじめに

本番環境にて投稿したデータを削除しようとした際このようなエラーが出ました。
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
 以下略

まとめ

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

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?