Edited at

Railsで404/500エラーの処理

More than 1 year has passed since last update.


Railsで404/500エラーの処理をする


application_controllerを編集


app/controllers/application_controller.rb

# 例外処理

rescue_from ActiveRecord::RecordNotFound, with: :render_404
rescue_from ActionController::RoutingError, with: :render_404
rescue_from Exception, with: :render_500

def render_404
render template: 'errors/error_404', status: 404, layout: 'application', content_type: 'text/html'
end

def render_500
render template: 'errors/error_500', status: 500, layout: 'application', content_type: 'text/html'
end



エラーページのviewファイルを作成


動的にページを表示する場合

app/views/errors/error_404.html.erbapp/views/errors/error_500.html.erbを作成する。

(静的ページを表示する場合は、public配下に作成)


ルートファイルを編集

config/routes.rbの一番下に以下を書く。


config/routes.rb

get '*path', controller: 'application', action: 'render_404'



ローカル環境でエラー処理の動作確認をする場合

development環境でエラーページの動作を確認する場合は、config/environments/development.rbを以下のようにfalseにする。


config/environments/development.rb

config.consider_all_requests_local       = false