Techioz Blog

Phusion パッセンジャー: Rails エラーを通過しながら内部パッセンジャー エラーをカスタマイズする

概要

通常の Rails エラー ページをユーザー エージェントに渡したいと考えています。もちろん、通常の Rails テクニックを使用してこれらのページをカスタマイズできます。

ただし、乗客の内部エラーが発生した場合 (通常は乗客がアプリをまったく起動できない場合)、そのページをカスタマイズしたいと思います。それを行う方法はありますか?

私(Apache)がPassengerErrorOverrideをオンに設定した場合、Apache側で内部旅客エラーページを設定できますが、カスタマイズした通常のRailsエラーページもすべて失われると思います。

カスタム Rails エラー ページ本体を通常の操作下に保ちながら、内部の乗客の致命的なエラー画面を何らかの方法でカスタマイズする方法はありますか?

ありがとう!

解決策

私が正しく理解しているかどうか見てみましょう。たとえば、HTTP 500 エラー ページがユーザーに表示される場合、これは 3 つの異なるソースから発生する可能性があります。

そして、あなたがユーザーに求めるものは次のとおりです: 1. + (あなたがカスタマイズした) 2.

  1. をオーバーライドするデフォルトの方法は確かにオプション 3. を使用することですが、それは望ましくない 1. もオーバーライドすることになります。

現在のところ、Passenger には 2. を上書きする別のオプションはないと思いますが、Passenger が使用するテンプレートを上書きすることはできます。フレンドリーなエラー ページがオフに設定されている場合、テンプレートは次のようになります。

`passenger-config about resourcesdir`/templates/undisclosed_error.html.template