質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • MySQL

    5367questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Ruby on Rails 5

    1106questions

  • Heroku

    727questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

herokuでNoMethodError (undefined method `encrypted_password=' for #<User:0x00000003d79b48>)

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 174

matsuo

score 70

いつもお世話になっております。

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によって作られたものです。

#schema.rb
ActiveRecord::Schema.define(version: 20171230191810) do

  create_table "favorites", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
    t.integer  "user_id",     null: false
    t.integer  "messages_id", null: false
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
    t.index ["messages_id"], name: "index_favorites_on_messages_id", using: :btree
    t.index ["user_id"], name: "index_favorites_on_user_id", using: :btree
  end

  create_table "messages", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
    t.integer  "user_id"
    t.string   "contents"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "users", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          default: 0,  null: false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
    t.datetime "created_at",                          null: false
    t.datetime "updated_at",                          null: false
    t.index ["email"], name: "index_users_on_email", unique: true, using: :btree
    t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
  end

end
registrations/new.html.erb
<h2>ユーザー登録</h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <div class="field">
    <%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true %>
  </div>

  <div class="field">
    <%= f.label :password %>
    <% if @minimum_password_length %>
    <em>(<%= @minimum_password_length %> 文字以上)</em>
    <% end %><br />
    <%= f.password_field :password, autocomplete: "off" %>
  </div>

  <div class="field">
    <%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation, autocomplete: "off" %>
  </div>

  <div class="actions">
    <%= f.submit "登録", class: "btn btn-primary" %>
  </div>
<% end %>

<%= render "devise/shared/links" %>
#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'
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • gouf

    2017/12/31 09:55

    当該部分のコードを一部だけでも公開できませんか?

    キャンセル

  • matsuo

    2017/12/31 11:14

    ソースコードを記載しました!実はこれstaging環境で、production環境では同じようにmigrateして登録ができています。

    キャンセル

回答 1

checkベストアンサー

0

つheroku restart

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/31 11:19

    restartの手がありましたね…すっかり忘れていました。
    ありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • MySQL

    5367questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Ruby on Rails 5

    1106questions

  • Heroku

    727questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。