前提・実現したいこと
本番環境でのみ発生している「We're sorry, but something went wrong.」というエラーは、ローカルでは問題なく動くのですが、本番環境の新規投稿時(Posts#new)のみで発生します。恐らく「gem 'carrierwave'」で作ったアップロード機能の「image」カラムを「picture」にrenameしたことが原因ではないかと思っていますが、解決策がわからず質問致しました。
本番環境(Heroku)のログ(エラー部分のみ抜粋)
(0.7ms) ROLLBACK Completed 500 Internal Server Error in 10ms (ActiveRecord: 2.6ms) ActiveModel::MissingAttributeError (can't write unknown attribute `picture`) app/controllers/posts_controller.rb:40:in `block in create' app/controllers/posts_controller.rb:39:in `create'
試したこと
「picture」というカラムが不明で書き込めないということでしたので、「picture」カラムをデフォルトの「image」カラムにrenameしたり、DBをdropしたりしましたが、解決できませんでした。
補足情報(FW/ツールのバージョンなど)
OS: Mac
Rails 5.1.6
ログイン機能を、gem devise,
画像、動画のアップローダーとして以下を使用しております。
gem 'carrierwave'
gem 'mini_magick'
renameしたmigrationfile
ruby
1class RenamePictureColumnToPosts < ActiveRecord::Migration[5.1] 2 def change 3 rename_column :posts, :picture, :image 4 end 5end 6
schema.rb
ruby
1 2ActiveRecord::Schema.define(version: 20190908051421) do 3 4 create_table "active_admin_comments", force: :cascade do |t| 5 t.string "namespace" 6 t.text "body" 7 t.string "resource_type" 8 t.integer "resource_id" 9 t.string "author_type" 10 t.integer "author_id" 11 t.datetime "created_at", null: false 12 t.datetime "updated_at", null: false 13 t.index ["author_type", "author_id"], name: "index_active_admin_comments_on_author_type_and_author_id" 14 t.index ["namespace"], name: "index_active_admin_comments_on_namespace" 15 t.index ["resource_type", "resource_id"], name: "index_active_admin_comments_on_resource_type_and_resource_id" 16 end 17 18 create_table "admin_accounts", force: :cascade do |t| 19 t.string "email", default: "", null: false 20 t.string "encrypted_password", default: "", null: false 21 t.string "reset_password_token" 22 t.datetime "reset_password_sent_at" 23 t.datetime "remember_created_at" 24 t.datetime "created_at", null: false 25 t.datetime "updated_at", null: false 26 t.index ["email"], name: "index_admin_accounts_on_email", unique: true 27 t.index ["reset_password_token"], name: "index_admin_accounts_on_reset_password_token", unique: true 28 end 29 30 create_table "comments", force: :cascade do |t| 31 t.string "content" 32 t.integer "post_id" 33 t.datetime "created_at", null: false 34 t.datetime "updated_at", null: false 35 t.string "user_name" 36 t.integer "user_id" 37 t.index ["post_id"], name: "index_comments_on_post_id" 38 end 39 40 create_table "likes", force: :cascade do |t| 41 t.integer "user_id" 42 t.integer "post_id" 43 t.datetime "created_at", null: false 44 t.datetime "updated_at", null: false 45 t.index ["post_id"], name: "index_likes_on_post_id" 46 t.index ["user_id"], name: "index_likes_on_user_id" 47 end 48 49 create_table "posts", force: :cascade do |t| 50 t.string "title" 51 t.text "content" 52 t.datetime "created_at", null: false 53 t.datetime "updated_at", null: false 54 t.integer "user_id" 55 t.integer "likes_count" 56 t.string "image" 57 t.string "video" 58 end 59 60 create_table "relationships", force: :cascade do |t| 61 t.integer "follower_id" 62 t.integer "following_id" 63 t.datetime "created_at", null: false 64 t.datetime "updated_at", null: false 65 t.index ["follower_id", "following_id"], name: "index_relationships_on_follower_id_and_following_id", unique: true 66 t.index ["follower_id"], name: "index_relationships_on_follower_id" 67 t.index ["following_id"], name: "index_relationships_on_following_id" 68 end 69 70 create_table "users", force: :cascade do |t| 71 t.string "email", default: "", null: false 72 t.string "encrypted_password", default: "", null: false 73 t.string "reset_password_token" 74 t.datetime "reset_password_sent_at" 75 t.datetime "remember_created_at" 76 t.integer "sign_in_count", default: 0, null: false 77 t.datetime "current_sign_in_at" 78 t.datetime "last_sign_in_at" 79 t.string "current_sign_in_ip" 80 t.string "last_sign_in_ip" 81 t.datetime "created_at", null: false 82 t.datetime "updated_at", null: false 83 t.string "name" 84 t.integer "age" 85 t.date "birthday" 86 t.index ["email"], name: "index_users_on_email", unique: true 87 t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true 88 end 89 90end 91
yml
1#デプロイの前に、production環境を 2production: 3 <<: *default 4 database: db/production.sqlite3 5 6#↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 7 8production: 9 <<: *default 10 adapter: postgresql 11 encoding: unicode 12 pool: 5 13 14#に変更しました。 15
解決策をご存知の方、ぜひご教授をいただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/08 05:35
退会済みユーザー
2019/09/08 05:59
2019/09/08 06:13 編集
退会済みユーザー
2019/09/08 06:19
2019/09/08 06:31
退会済みユーザー
2019/09/08 07:37
2019/09/08 11:05