エラー処理
参考:
Rails で 404 / 500 エラーの処理 – Qiita
Rails で 404 エラーメッセージを出すために – Qiita
404 / 500 などのエラーページって結局どうすればいいの? – Qiita
アプリの例外ハンドリングとエラーページの表示についてまとめてみた – Qiita
アプリケーションにおけるエラー処理 (例外設計) の考え方 – Qiita
Rails 5 の 404 / 500 エラーページ、簡単作成手順 | 酒と涙とRubyとRailsと
How Rails chooses error pages (404, 500, …) for exceptions | makandra dev
Rails render 404 not found from a controller action | Ruby in Rails (rubyinrails.com)
How to redirect to a 404 in Rails? – GitHub Gist
404 エラーページを表示する
参考:
How to redirect to a 404 in Rails? – Stack Overflow
エラーページのカスタマイズ
参考:
Rails で 404 エラーメッセージを出すために – Qiita
config.action_dispatch.rescue_responses
デフォルトの設定
config.action_dispatch.rescue_responses = {
  'ActionController::RoutingError'               => :not_found,
  'AbstractController::ActionNotFound'           => :not_found,
  'ActionController::MethodNotAllowed'           => :method_not_allowed,
  'ActionController::UnknownHttpMethod'          => :method_not_allowed,
  'ActionController::NotImplemented'             => :not_implemented,
  'ActionController::UnknownFormat'              => :not_acceptable,
  'ActionController::InvalidAuthenticityToken'   => :unprocessable_entity,
  'ActionController::InvalidCrossOriginRequest'  => :unprocessable_entity,
  'ActionDispatch::Http::Parameters::ParseError' => :bad_request,
  'ActionController::BadRequest'                 => :bad_request,
  'ActionController::ParameterMissing'           => :bad_request,
  'Rack::QueryParser::ParameterTypeError'        => :bad_request,
  'Rack::QueryParser::InvalidParameterError'     => :bad_request,
  'ActiveRecord::RecordNotFound'                 => :not_found,
  'ActiveRecord::StaleObjectError'               => :conflict,
  'ActiveRecord::RecordInvalid'                  => :unprocessable_entity,
  'ActiveRecord::RecordNotSaved'                 => :unprocessable_entity
}Code language: Ruby (ruby)
参考:
Rails でよしなに 40x 系のレスポンスを返す Exception の確認の仕方 | コード日進月歩
Rails のコントローラでの不可解 (に見える) なエラーハンドリングについて | suusan2号の戯れ
Action Dispatch を設定する | Rails ガイド [公式]
rescue_responses – rails/exception_wrapper.rb at v5.2.3 · rails/rails – GitHub
rescue_responses – rails/railtie.rb at v5.2.3 · rails/rails – GitHub
merge – rails/action_dispatch/railtie.rb at v5.2.3 · rails/rails – GitHub
merge – rails/active_record/railtie.rb at v5.2.3 · rails/rails – GitHub
HTTP ステータス
参考:
Rails の HTTP ステータスのシンボル表現まとめ | Hack Your Design!
HTTP_STATUS_CODES – rack/utils.rb at 2.0.7 · rack/rack – GitHub
SYMBOL_TO_STATUS_CODE – rack/utils.rb at 2.0.7 · rack/rack – GitHub
ActiveRecord::RecordNotFound
参考:
Rails アプリの例外ハンドリングで、NotFound ページへ遷移 – Qiita
rescue_from
参考:
rescue_from でコントローラのエラーを rescue する 翻訳 | TechRacho
rescue_from とは?わかりやすく解説/例外処理の便利な使い方実例 | Proぐらし
Rails で rescue_from を使ってエラー処理を共通化する | アトトックラボ
rescue_from は下に書いたものから評価される | haayaaa’s diary
rescue_from – ActiveSupport::Rescuable::ClassMethods | Ruby on Rails API [Official]
rescue_from の使い方を教えてください – teratail
Global error handling and the order of included rescue_from – Stack Overflow
rescue_action_in_public
参考:
rescue_action_in_public を使用したエラーハンドリング | rochefort’s blog
rescue_action_in_public を使用したエラーハンドリング | うんたらかんたらRuby
rescue_action_in_public, local_request? and how to configure local_request | BigBinary Blog
開発時にエラーページをテストする
config.consider_all_requests_local = falseCode language: Ruby (ruby)
参考:
Rails で 404 エラーメッセージを出すために – Qiita
development でも 404 ページを表示させたい | あいすのブログ
Why would I have to restart rails every time to test a 404.html page here? – Stack Overflow
HTTP レスポンスコードをテストする
参考:
How to test render status: 404 with Rails4 and RSpec when using rescue_from – Stack Overflow
API レスポンス
参考:
API のレスポンスを生成するメソッドを紹介 | きゃまなかのブログ
head
空のレスポンスを返す。
参考:
head – ActionController::Head | Ruby on Rails API [Official]
Rambulance
リポジトリ:
yuki24/rambulance: Simple and Safe Way to Dynamically Render Error Pages for Rails Apps – GitHub
参考:
特定のテストでのみ Rambulance を有効にしてエラーページのテストをするやり方 – Qiita
エラーページの文言
参考: