Railsアプリで発生したNoMethodErrorを解決するために色々いじくり、再びデプロイしてみました。
2020-05-08T08:56:34.186328+00:00 app[web.1]: F, [2020-05-08T08:56:34.186259 #4] FATAL — : [c8e35f62-55ce-47e6-91e9-d65c88df4948] 2020-05-08T08:56:34.186437+00:00 app[web.1]: F, [2020-05-08T08:56:34.186375 #4] FATAL — : [c8e35f62-55ce-47e6-91e9-d65c88df4948] NoMethodError (undefined method
password_digest=' for #<User:0x0000563bc9b410d0>
create’
2020-05-08T08:56:34.186438+00:00 app[web.1]: Did you mean? password=):
2020-05-08T08:56:34.186492+00:00 app[web.1]: F, [2020-05-08T08:56:34.186434 #4] FATAL -- : [c8e35f62-55ce-47e6-91e9-d65c88df4948] 2020-05-08T08:56:34.186550+00:00 app[web.1]: F, [2020-05-08T08:56:34.186490 #4] FATAL -- : [c8e35f62-55ce-47e6-91e9-d65c88df4948] app/controllers/users_controller.rb:50:in
すると、今度はもっとやばそうな
Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
heroku logs –tail
というエラーが発生!!

つまるところ、
エラーがさらに悪化したのですね。
心折れる寸前でしたが、めげずに戦う事にしました。
前回学んだ「Herokuのエラーをログで表示する方法」の
$ heroku logs -t
を試しましたが、
at=error code=H10
というヒントしか得られません。
よくエラーの原因がわからなかったのです。
そこでこの手がかかりでググってみたところ、神記事を発見↓
どうやら、
$ heroku run rails c
を発動すると、Heroku上でRailsコンソールを開けるようです。
コンソールを起動したところ、次のヒントが得られました。
/app/app/controllers/thanks_controller.rb:35:in `<top (required)>’: undefined local variable or method `s’ for main:Object (NameError)
どうやら、thanks_controller.rbで定義されていない「s」という変数がある、と。
恐る恐るthanks_controller.rbを調べてみると、
うわっ、本当にsがありました。

エラーにイラッとして、上書き保存コマンドcommand + Sを強打した際、sが混入してしまったのでしょう。
いやあ、でも助かりました。
これで振り出しに戻りましたが、Application Errorという「ニッチもサッチもいかないエラー」からは抜け出せました。
今回の経験を通して、アプリ開発は「デプロイしてから本番」だと改めて痛感。
ローカル環境では生じていなかった問題が数々噴出しています。
まだまだ先行きは長そうですね。
それでは!
Lin

おそらく、ブロガー。
今年でフリーランス 6年目。