「ローカル環境での挙動はバッチリ、さあ herokuへアップロードだ」
と思ったら、アップロード後にはなんのヒントもないエラーページ。
本番環境だとエラー画面のデフォルトが下記のように設定されています。
オリジナルアプリケーション開発で遭遇したシチュエーションをもとに、このような時の解決法を整理します。
1.コマンドでログを確認する
heroku logs -t #-tでも-tailでもOK
ログを確認すると、
- 本番環境ではカラムが追加されていない(※
heroku rails db:migrate
で解消)
などのエラー内容ががつかめるはずです。
2.アドオン(Papertail)でログを確認する
コメントをいただき知った方法ですが、ご紹介させていただきます。
herokuのadd-onのPapertail
を利用する方法です。
導入すると下記のような画面でログの検索や、あらかじめ設定したエラーに対する通知をすることができます。
参考:Herokuにログ管理ツール「papertrail」を導入&利用してみる
※エラー画面を表示するのはオススメできない
記事公開当初は、「エラー画面を表示する」方法も1つの手だてかと考えていましたが、コメントをいただき、セキュリティの観点から好ましくないということがわかりました。
念のための備忘録ですが、下記の設定ファイルをfalse
からtrue
に変えることでエラー画面の表示は可能です。
config/environments/production.rb
config.consider_all_requests_local = false
とは言え、セキュリティ的に問題もあるかつ実務でも利用しない方法とのことなので、利用しない方が良いとの見解に至りました。