【Rails】HerokuでApplication errorが出たときの対処法




 

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>
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
create’

すると、今度はもっとやばそうな

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のエラーをログで表示する方法」の

を試しましたが、

at=error code=H10

というヒントしか得られません。

よくエラーの原因がわからなかったのです。

 

そこでこの手がかかりでググってみたところ、神記事を発見↓

どうやら、

を発動すると、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

Pocket
LINEで送る




音生入力で楽にブログを書く技が満載!
ブログ音声入力術

音声入力の使い方から文章を書くコツまで完全網羅。ブログを書きたいすべての人向けの電子書籍




コメントを残す

メールアドレスが公開されることはありません。