2010-12-07 2 views
1

彼のアクションのいくつかは完全なHTMLページを返すことはできませんが、HTML/HEAD/BODY ...タグのないコンテンツのみを返すコントローラMyControllerがあります。特定のアクションのためのRailsのカスタムエラーページ

デフォルトのエラーページは500.htmlなどですが、実際には完全なHTMLページであり、これらのMyController:actionsではエラーページを非フルページフォーマットで取得する必要があります。

それを行う1つの方法は次のとおりです。MyController内部

オーバーライド「render_optional_error_file()」とアクションが唯一のエラーページの異なるバージョンに私の特別なアクションに(コンテンツである場合にはリダイレクト、非全面タグ)。

これは機能しますか?そこに他の方法はありますか?

私はレール2.3.9で作業しています。

おかげで、 エレズ

答えて

0

それは特に、500エラーが発生した場合には、困難な問題のビットです。アプリケーションが遭遇しエラーが発生したときに500がレンダリングされるので、コントローラーが処理する動的ページを持つことはできません。このコントローラーは問題の原因となる可能性があります。

404の場合、404アクションでErrorsControllerをセットアップし、リクエストがXHRリクエストであったかどうかに応じて、別のレイアウトを使用できます。あなたが好きな場所、カスタムエラーハンドラを呼び出すことができます

def render_404 
    render "errors/404", :status => 404 
end 

次に、あなたが必要とするすべてはあなたのようなApplicationController方法です。

これをさらに拡張して、500エラーのサポートを追加することもできます(ただし、必要に応じて)が、大きな問題を抱えてパブリックフォルダに静的な500.htmlが常に必要になることに注意してください。

関連する問題