heorkuでデプロイした後コメント投稿をするとできず、We're sorry, but something went wrong.が出ている。
ログを見るとActiveModel::UnknownAttributeError (unknown attribute 'username' for Comment.)が出ているが、Commentテーブルには、usernameカラムが存在するのでエラーの原因がわかりません。
本番環境のみこのようなことが確認できます
テスト環境上では、問題なく動作します
エラーログ
2021-10-04T12:11:59.833913+00:00 app[web.1]: [4d60e566-1060-4e49-aaf5-83138d540772] Completed 500 Internal Server Error in 4ms (ActiveRecord: 1.1ms) 2021-10-04T12:11:59.834375+00:00 app[web.1]: [4d60e566-1060-4e49-aaf5-83138d540772] 2021-10-04T12:11:59.834431+00:00 app[web.1]: [4d60e566-1060-4e49-aaf5-83138d540772] ActiveModel::UnknownAttributeError (unknown attribute 'username' for Comment.)
コメント投稿フォーム
<div class = "mt-5 form-group mx-auto border border-success p-4" style="width: 500px;"> <%= form_with model: [@post,@comment] do |f| %> <%= f.text_area :username, class: 'form-control mb-4', placeholder: "名前(省略可)", :value =>"通りすがりの配達員"%> <%= f.text_area :content, class: 'form-control', placeholder: "コメント内容"%> <%= f.hidden_field :post_id, value: @post.id %> <%= f.submit 'コメントする',class: 'btn btn-success mt-4' %> <% end %> </div>
comments テーブル
mysql> describe comments; +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id | bigint(20) | NO | PRI | NULL | auto_increment | | content | varchar(255) | YES | | NULL | | | user_id | bigint(20) | YES | MUL | NULL | | | post_id | bigint(20) | YES | MUL | NULL | | | created_at | datetime | NO | | NULL | | | updated_at | datetime | NO | | NULL | | | username | varchar(255) | YES | | NULL | |
コメントコントローラー
class CommentsController < ApplicationController before_action :require_user_logged_in def new @comment = Comment.new end def create @comment = Comment.new(comment_params) @comment.user_id = current_user.id if @comment.save redirect_back(fallback_location: root_path) else @comments = Comment.all redirect_back(fallback_location: root_path) end end private def comment_params params.require(:comment).permit(:content, :post_id, :username) end end
やったこと
rails db:dropにてデータベース削除、後rails db:migrate
カラムを改めて作成
助言いただけるとありがたいです
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。