LoginSignup
153

More than 5 years have passed since last update.

posted at

updated at

Railsで404/500エラーの処理

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
153