みるべあのエンジニア日記

勉強したことについてTwitterとガチブログの中間くらいのスタンスで書く日記

開発環境におけるエラーページの表示確認方法【Rails】

前提

やりたいこと

404や500エラーなどのページのデザインを開発環境下で確認したい。

設定を一つ変更すればあとはエラーを発生させればいい

config/environments/development.rbにあるconsider_all_requests_localを変更することで、本番環境同様のエラーページを表示できるようになります。

# config/environments/development.rb

Rails.application.configure do
  config.consider_all_requests_local = false
end

404 Not Found

404エラーはページが存在しない場合などに起こるので、存在しないhttp://localhost:3000/dummyなどのテキトーなURLにアクセスして確認できます。

422 Unprocessable Entity

422エラーは

サーバーが要求本文のコンテンツ型を理解でき、要求本文の構文が正しいものの、中に含まれている指示が処理できなかったことを表します。(出典:MDN web docs

ふわっとした内容で具体的に何を指しているのか正確に分かりませんでした。
ただ、RailsにおいてはActiveRecord::RecordNotSavedが422エラーに相当するようなので、このエラーを発生させれば表示できます。
レコードが保存できなかった場合に上がる例外ですね。

class HomesController < ApplicationController
  def index
    raise ActiveRecord::RecordNotSaved
  end
end

500 Internal Server Error

500エラーは

サーバーがリクエストを実行を妨げる予期しない条件に遭遇したことを示します。(出典:MDN web docs)

Railsの場合はコントローラーにraiseと書けば500エラーのページを表示できます。

class HomesController < ApplicationController
  def index
    raise
  end
end