いつもお世話になっております。
Rails5でdeviseを使ったアプリケーションを作っているのですが、
ローカルで問題なく動作するものがHerokuにあげるとエラーになってしまいます。
新規登録の場面で送信ボタンを押すと、以下のエラーが出てcreateができません。
NoMethodError (undefined method `encrypted_password=' for #<User:0x00000003d79b48>)
試したことは、
heroku run --app app_name rails db:migrate:reset RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1
User.new.respond_to?(:encrypted_password=) #=>true
です。
初歩的な質問で申し訳ないですが、ご教授いただければと思います。
どうぞよろしくお願い致します。
【追記】
ソースコードを追記いたします。
アプリの動作としては、短い文章を投稿したり、それらを閲覧したりお気に入りにしたりすることができます。
また、問題部分のencrypted_password
というカラムはdeviseによって作られたものです。
ruby
1#schema.rb 2ActiveRecord::Schema.define(version: 20171230191810) do 3 4 create_table "favorites", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t| 5 t.integer "user_id", null: false 6 t.integer "messages_id", null: false 7 t.datetime "created_at", null: false 8 t.datetime "updated_at", null: false 9 t.index ["messages_id"], name: "index_favorites_on_messages_id", using: :btree 10 t.index ["user_id"], name: "index_favorites_on_user_id", using: :btree 11 end 12 13 create_table "messages", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t| 14 t.integer "user_id" 15 t.string "contents" 16 t.datetime "created_at", null: false 17 t.datetime "updated_at", null: false 18 end 19 20 create_table "users", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t| 21 t.string "email", default: "", null: false 22 t.string "encrypted_password", default: "", null: false 23 t.string "reset_password_token" 24 t.datetime "reset_password_sent_at" 25 t.datetime "remember_created_at" 26 t.integer "sign_in_count", default: 0, null: false 27 t.datetime "current_sign_in_at" 28 t.datetime "last_sign_in_at" 29 t.string "current_sign_in_ip" 30 t.string "last_sign_in_ip" 31 t.datetime "created_at", null: false 32 t.datetime "updated_at", null: false 33 t.index ["email"], name: "index_users_on_email", unique: true, using: :btree 34 t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree 35 end 36 37end
html
1registrations/new.html.erb 2<h2>ユーザー登録</h2> 3 4<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 5 <%= devise_error_messages! %> 6 7 <div class="field"> 8 <%= f.label :email %><br /> 9 <%= f.email_field :email, autofocus: true %> 10 </div> 11 12 <div class="field"> 13 <%= f.label :password %> 14 <% if @minimum_password_length %> 15 <em>(<%= @minimum_password_length %> 文字以上)</em> 16 <% end %><br /> 17 <%= f.password_field :password, autocomplete: "off" %> 18 </div> 19 20 <div class="field"> 21 <%= f.label :password_confirmation %><br /> 22 <%= f.password_field :password_confirmation, autocomplete: "off" %> 23 </div> 24 25 <div class="actions"> 26 <%= f.submit "登録", class: "btn btn-primary" %> 27 </div> 28<% end %> 29 30<%= render "devise/shared/links" %> 31
#heroku log Started GET "/users/sign_up" for 111.103.247.179 at 2017-12-30 19:08:50 +0000 2017-12-30T19:08:50.007807+00:00 app[web.1]: I, [2017-12-30T19:08:50.007724 #4] INFO -- : [28062bb8-c058-433c-bcd9-2f3f04481c51] Processing by Devise::RegistrationsController#new as HTML 2017-12-30T19:08:50.031259+00:00 app[web.1]: I, [2017-12-30T19:08:50.031034 #4] INFO -- : [28062bb8-c058-433c-bcd9-2f3f04481c51] Rendering devise/registrations/new.html.erb within layouts/application 2017-12-30T19:08:50.057356+00:00 app[web.1]: I, [2017-12-30T19:08:50.057109 #4] INFO -- : [28062bb8-c058-433c-bcd9-2f3f04481c51] Rendered devise/shared/_links.html.erb (23.3ms) 2017-12-30T19:08:50.057393+00:00 app[web.1]: I, [2017-12-30T19:08:50.057315 #4] INFO -- : [28062bb8-c058-433c-bcd9-2f3f04481c51] Rendered devise/registrations/new.html.erb within layouts/application (26.1ms) 2017-12-30T19:08:50.067819+00:00 app[web.1]: I, [2017-12-30T19:08:50.067699 #4] INFO -- : [28062bb8-c058-433c-bcd9-2f3f04481c51] Completed 200 OK in 60ms (Views: 58.2ms | ActiveRecord: 0.0ms) 2017-12-30T19:08:50.069436+00:00 heroku[router]: at=info method=GET path="/users/sign_up" host=my_app.herokuapp.com request_id=28062bb8-c058-433c-bcd9-2f3f04481c51 fwd="111.103.247.179" dyno=web.1 connect=0ms service=77ms status=200 bytes=3720 protocol=https 2017-12-30T19:09:01.105846+00:00 app[web.1]: I, [2017-12-30T19:09:01.105737 #4] INFO -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] Started POST "/users" for 111.103.247.179 at 2017-12-30 19:09:01 +0000 2017-12-30T19:09:01.108230+00:00 app[web.1]: I, [2017-12-30T19:09:01.108149 #4] INFO -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] Processing by Devise::RegistrationsController#create as HTML 2017-12-30T19:09:01.114916+00:00 app[web.1]: I, [2017-12-30T19:09:01.114777 #4] INFO -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] Parameters: {"utf8"=>"✓", "authenticity_token"=>"LRgMeu8ux6a2fH1FL4F79MBgYJV7tR6dUmagAh9HzZ+wSFnFzMTkqMF0UYONXQTJmML32/RNuL6/RlSzElIs9g==", "user"=>{"email"=>"kdy78022@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"登録"} 2017-12-30T19:09:01.628005+00:00 app[web.1]: I, [2017-12-30T19:09:01.627769 #4] INFO -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] Completed 500 Internal Server Error in 507ms (ActiveRecord: 0.0ms) 2017-12-30T19:09:01.629901+00:00 app[web.1]: F, [2017-12-30T19:09:01.629788 #4] FATAL -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] 2017-12-30T19:09:01.636673+00:00 app[web.1]: F, [2017-12-30T19:09:01.636548 #4] FATAL -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] NoMethodError (undefined method `encrypted_password=' for #<User:0x00000004656568>): 2017-12-30T19:09:01.636856+00:00 app[web.1]: F, [2017-12-30T19:09:01.636673 #4] FATAL -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] 2017-12-30T19:09:01.636929+00:00 app[web.1]: F, [2017-12-30T19:09:01.636859 #4] FATAL -- : [c2b8e53c-26e2-418d-ae11-8141a4ada67f] vendor/bundle/ruby/2.3.0/gems/activemodel-5.0.0.1/lib/active_model/attribute_methods.rb:433:in `method_missing'
回答1件
あなたの回答
tips
プレビュー