前提・実現したいこと
Railsで画像投稿アプリを作成中。
その中にコメント投稿機能も実装したい。
発生している問題・エラーメッセージ
ローカルサーバー下では問題なく動作してくれたが、Herokuにデプロイして本番環境で挙動確認をするとコメントの送信ボタンを押した時にブラウザ上で以下のエラーが出てしまう。
We're sorry. but something went wrong.
エラーログを確認すると以下の通り。
ActiveModel::UnknownAttributeError (unknown attribute 'content' for Comment.):
該当のソースコード
commentsコントローラー
class CommentsController < ApplicationController def create @comment = Comment.new(comment_params) if @comment.save redirect_to prototype_path(@comment.prototype) else @prototype = @comment.prototype @comments = @prototype.comments render "prototypes/show" end end private def comment_params params.require(:comment).permit(:content).merge(user_id: current_user.id, prototype_id: params[:prototype_id]) end end
commentモデル
class Comment < ApplicationRecord belongs_to :user belongs_to :prototype validates :content, presence: true end
prototypeコントローラーのshowアクション
def show @comment = Comment.new @comments = @prototype.comments end
試したこと
commentテーブルにcontentカラムがない事が原因だと思いカラムを追加したが、エラー内容は変わらず。
ローカルサーバー環境では問題ないのに本番環境でエラーになってしまう原因が他に分かりません。
ご教授頂けませんでしょうか。
確かherokuだとherokuのコンソールからデータベースの構成を確認できたと思うので、データベースのカラム一覧を出力してcontentのcolumn追加がちゃんと反映されているか確認してみましょう。
多分データベースのマイグレーションができていないことが原因のような気がします
ご返信が遅くなってしまい申し訳ありません。
ご回答ありがとうございます。
>データベースのカラム一覧を出力してcontentのcolumn追加がちゃんと反映されているか確認
実行したところ、案の定、本番環境ではcommentテーブルにcontentカラムが存在していませんでした。
本番環境のデータベースをリセット→マイグレートしましたが、カラムは存在しないままです。
アプリケーションを作成し直すほかないでしょうか。。
回答1件
あなたの回答
tips
プレビュー