カスタムエラーページをレンダリングするようにRailsに指示する方法はありますか(たとえば、ErrorsController
に書くもの)?私は多くのトピック、とちょっと仕事がカスタム404ページと500ページを正しくレンダリングする方法は?
if Rails.env.production?
rescue_from Exception, :with => :render_error
rescue_from ActiveRecord::RecordNotFound, :with => :render_not_found
rescue_from ActionController::UnknownController, :with => :render_not_found
rescue_from ActionController::UnknownAction, :with => :render_not_found
end
のようなあなたのApplicationController
ものに追加して、あなたが望むようにあなたの方法render_error
とrender_not_found
を書くことだったように思われるものを検索しました。これは私にとっては本当に不思議な解決策のようです。また、起こり得るすべてのエラーが何であるかを正確に知る必要があるため、悪いことです。一時的な解決策です。
また、実際にActionController::RoutingError
を救助する簡単な方法はありません。私は1つの方法は、あなたのroutes.rb
に
get "*not_found", :to => "errors#not_found"
のようなものを追加したことを見ました。しかし、手動でActionController::RoutingError
のどこかを上げたければどうでしょうか?たとえば、管理者でない人がURLを推測して "adminy"コントローラにアクセスしようとするとします。このような状況では、私は、実際に彼がURLを推測したことを人に伝えるため、何らかの種類の「不正アクセス」エラーを発生させるよりも404を上回る方が望ましいです。手動で上げると、500ページのレンダリングが試行され、404が欲しいです。
Railsに伝える方法はありますか?「通常は404.html
または500.html
をレンダリングします。myカスタムの404と500のページ "? (もちろん、フォルダから404.html
と500.html
ページを削除しました)
でファイルを持っている必要があります
のようなものでなければならないであろう。このようにして、私は「404の例外」がどれだけあるかを知る必要があります。これは簡単です。素晴らしい解決策:)。 1つの質問、あなたの意見では、不正なアクセスに対処する最良の方法は何ですか? 'ActionController :: RoutingError'を呼び出すと、実際に私にはうってつけの気分になりません。 –
私はまだ15の評判ポイントがないので、投票できません。 –
私はいつも 'head:unauthorized'を使いました。読んだり、意思を表明したりするのは簡単です。 – siannopollo