【今日のgem】手軽にエラーページを構築できる「rambulance」
テクノロジー
例外をキャッチして、404エラーや500エラーページを表示できるGemです。 rescue_fromでキャッチできない例外にも対応できるのが助かります
# インストール
gem 'rambulance'
# エラーページの雛形を作成してくれます
rails g rambulance:install
# app/views/errors/not_found.html.erbなど、viewファイルが作成されます
設定ファイルに、キャッチしたい例外と、ステータスコードを記述します
# config/initializers/rambulance.rb
config.rescue_responses = {
"ActiveRecord::RecordNotUnique" => :unprocessable_entity,
"CanCan::AccessDenied" => :forbidden,
"YourCustomException" => :not_found
}
これで、エラーに対応したapp/views/errors/にあるページが表示されます。
# 開発環境で確認するとき
# config/environments/development.rb
config.consider_all_requests_local = false
エラー処理は下記のように自分で実装することもできます
# app/handlers/exceptions_app.rb
class ExceptionsApp < Rambulance::ExceptionsApp
def not_found
head :not_found
end
def internal_server_error
head :internal_server_error
end
end