私はHartlの優れたRoR(3.2)チュートリアルを実行していて(そしてHeroku全体にデプロイして)、Herokuバージョンがローカルでホストされているアプリの動作を反映しなくなった理由に困惑しました。
私はセクション7.4.4の終わりにいます:http ://ruby.railstutorial.org/chapters/sign-up?version = 3.2#top
ローカルでホストされているアプリはすべてのテストに合格し、ユーザー/メール/パスワードの入力が正しくないか仕様外の場合に、新しいユーザーを作成し、適切なエラーメッセージを表示することができます。アプリのHerokuデプロイメントでは、そのバージョンのパスワードダイジェスト機能に問題があるように見えるため、ユーザーの作成に成功せず、エラーページも修正されません。一般的なHerokuの「申し訳ありませんが、問題が発生しました」ページに移動します。
「herokulogs」コマンドで次のことがわかります。
Started POST "/users" for 97.81.107.108 at 2012-04-10 19:41:17 +0000
2012-04-10T19:41:17+00:00 app[web.1]: Processing by UsersController#create as HTML
2012-04-10T19:41:17+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"0jnDCpFnVq9fd/v1lgLNB7g0wHuXGi5bocTD3SINRzc=", "user"=>{"name"=>"helloq", "email"=>"this@this.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create my account"}
2012-04-10T19:41:17+00:00 app[web.1]:
2012-04-10T19:41:17+00:00 app[web.1]: app/controllers/users_controller.rb:12:in
create '2012-04-10T19:41:17 + 00:00 app [web.1]:2012-04-10T19:41:17 + 00:00 app [web.1]:NoMethodError(未定義のメソッドpassword_digest=' for #<User:0x0000000229e9e0>):
2012-04-10T19:41:17+00:00 app[web.1]:
2012-04-10T19:41:17+00:00 heroku[router]: POST simple-sword-1851.herokuapp.com/users dyno=web.1 queue=0 wait=0ms service=128ms status=500 bytes=643
2012-04-10T19:41:17+00:00 app[web.1]: Completed 500 Internal Server Error in 104ms
2012-04-10T19:41:17+00:00 app[web.1]: app/controllers/users_controller.rb:12:in
new'
password_digestメソッドがローカル展開で正しく機能しているときにNoMethodErrorが発生するのはなぜですか?ローカルバージョンとリモートherokuバージョンが同じであることをgitで確認し、データベースを移行してアプリを再起動することを確認しました。
提案をありがとう!