「Ruby on Rails6実践ガイド」に沿ってアプリを作っていると、この仕様に気づかず4時間ほど詰まってしまったので記事にします。
状況
Windows10home、VirtualBoxにUbuntu、更にDocker入れてRailsアプリ作成。
クライアントによって指定されたURLパスに対応するルーティングが存在しない場合(Routing Error)、デフォルトの
ではなく、自作した
この表示になる。
サーバー実行はターミナル(端末)でこれ。
$ bin/rails s -e production -b 0.0.0.0
原因
本番環境でサーバー立ち上げたらターミナルにログが出ず、エラーの時に何が原因か分かりにくいので、
- config.consider_all_requests_local=false
+ config.consider_all_requests_local=true
と、falseからtrueに変えていたから。
falseに直すとRouting Error時に作成した画面が表示されました。
Rooting Errorになってもviewを表示する設定になっているから、そのviewが出ると思っていました。
他のエラーの時は、ちゃんと作成した画面が表示されるので。
ちなみにfalseにもどしても、railsサーバーを再起動しないと反映されません。
ちなみにconfig.consider_all_requests_localとは
trueにしたらブラウザにエラーレポートが表示され、falseにしたら表示されない。
config/developments/内にあり。