トップ «前の日記(2012/08/02 (木) ) 最新 次の日記(2012/08/04 (土) )» 編集 RSS feed

HsbtDiary


2012/08/03 (金) [長年日記]

[ruby][rails] exception_notification でカスタムテンプレートを使う

rails でエラーが発生した時に良い感じにメール通知してくれるexception_notificationを使う時に session や request に表示したくない項目(個人情報に該当する奴)とかがある場合にはカスタムテンプレートを使うと良い。

README にも書いてあるけど、 exception_notification は @section として下の4つが使われている

  • request
  • session
  • environment
  • backtrace

他にも用意されている別のセクションを追加したり、自分で作ったセクションを追加することができる。自分でセクションを追加したり、定義済みのセクションを上書きする時は app/views/exception_notifier 下に erb ファイルを作成する。例えば、session を上書きする場合はファイル名として _session.text.erb とする。内容は標準では以下の内容なので自分がカスタマイズしたいように書き換える。

* session id: <%= @request.ssl? ? "[FILTERED]" : (raw (@request.session['session_id'] || @request.env["rack.session.options"][:id]).inspect.html_safe) %>
* data: <%= raw PP.pp(@request.session, "") %>

と、ここまで説明しておいてなんだけど、カスタムテンプレートはgem install exception_notification でインストール出来る 2.6.1 では何故か動かなくて、github の master じゃないとダメみたい。なんでかなー。