傑克達與瑞兒絲的大小事

快速筆記整理網站開發上碰到的各種技巧和問題,免得年紀大忘光,至少還有一個地方可以查找

Tag Archives: data

Rails 專案遇到錯誤時,如何執行發信通知功能 (進階)

接續剛剛提到的專案遇到錯誤執行發信通知功能,如果有一些額外的資訊需要表達在信件中時,該怎麼做呢?

貼心的 exception_notification_rails3 另外有提供了一個 data 的 section 可以讓使用者自訂訊息內容

使用方法:

1. 開啟剛剛在 config/environments/production.rb 的設定,加上粗體表示的那行文字

config.middleware.use ::ExceptionNotifier,
:email_prefix => "[ERROR] ",
:sender_address => %{"Notifier" <notifier@yourdomain.com> },
:exception_recipients => %w{exceptions@yourdomain.com},
:sections => %w(data request session environment backtrace)

2. 接下來要自訂訊息內容,開啟 app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
before_filter :authenticate
before_filter :set_exception_data
...
def set_exception_data
# used for exception notification
user = User.current
return true if user.nil?
user_info = "名字: #{user.display_name}, 電子郵件: #{user.mail}, 部門: #{user.department}"
env['exception_notifier.exception_data'] = { :data=>{ :user => user_info , :deploy => Rails.env } }

true
end

3. 設定完成,之後便會在錯誤信件中看到定義的內容,結果如下:

-------------------------------
Data:
-------------------------------
* user: 名字: 小王, 電子郵件: smallwang@yourdomain.com, 部門: 資訊部
* deploy: production

參考文章:

http://qa.taobao.com/?p=13030