rambulance Rails 4.2時代の簡単404/500エラー対応


最近作っているRailsアプリケーションで、404/500エラーの対応をしている時に知ったgem『yuki24/rambulance
の紹介です。

一言でいうと、ものすごく簡単にRailsのエラーハンドリングを行ってくれつつ、エラーページを構築できるgemです。


🐮 インストール手順

いつ戻おりGemfileに以下を追加。

# Error handling
gem 'rambulance'

そして次のコマンドを実行してインストールしてください。(パスは適宜変更)

bundle install --path vendor/bundle --jobs=4

🐡 環境設定

エラーページのviewや、設定ファイルを生成してくれます。

rails g rambulance:install

# generating templates:
# create app/views/errors/bad_request.html.haml
# create app/views/errors/forbidden.html.haml
# create app/views/errors/internal_server_error.html.haml
# create app/views/errors/not_found.html.haml
# create app/views/errors/unprocessable_entity.html.haml
# create app/views/errors/bad_request.json.jbuilder
# create app/views/errors/forbidden.json.jbuilder
# create app/views/errors/internal_server_error.json.jbuilder
# create app/views/errors/not_found.json.jbuilder
# create app/views/errors/unprocessable_entity.json.jbuilder
#
# generating initializer:
# create config/initializers/rambulance.rb

🎳 エラーごとに表示するページを変更

エラーごとに表示するページを変更するには、config/initializers/rambulance.rbを適宜変更してください。
また、個人的にlayoutはnilにしておくほうがはまりにくいと思います!

# エラーページのハンドリング方法はこんな感じ
config.rescue_responses = {
# "ActiveRecord::RecordNotUnique" => :unprocessable_entity,
# "CanCan::AccessDenied" => :forbidden,
# "Pundit::NotAuthorizedError" => :forbidden,
# "YourCustomException" => :not_found
}

# エラーページのレイアウトはnilにしておくのがオススメ
config.layout_name = nil

🎃 開発環境での確認方法

config/environments/development.rbに以下を追記したら、開発環境でエラーが出た際にrambulanceのエラー画面が表示されます。

# --------------------------------
# Error Handling
# --------------------------------
config.consider_all_requests_local = false

😀 エラー処理を独自実装したい場合

もしエラー処理を独自実装したい場合は次のコマンドでエラー処理用のひな型を生成してくれます。

rails g rambulance:exceptions_app
# create app/handlers/exceptions_app.rb

ちなみに、最初はエラー通知をAirbrakeで自分でコードを書いて通知させていたんですが、作者の@yuki24
から、Airbrakeのミドルウェアがやってくれるから、自作しなくていいという話を教えてもらいました。ありがたうございます!

まだ、使い始めて日が浅いので間違い等あればコメントよろしくお願いします!

🐠 変更来歴

(2015-01-31 11:55) 新規作成
(2015-02-01 11:30) Airbrakeの自作通知ハンドラを削除

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍