Плагин уведомления об исключении Rails - Force send email - PullRequest
18 голосов
/ 01 октября 2009

Я использую плагин Rails exception_notification в своем приложении и считаю его очень полезным.

Однако бывают случаи, когда я хочу поймать исключение и изящно разобраться с ним, но все равно хотел бы получить электронное письмо с уведомлением об исключении. Кажется, он только отправляет за неисследованными исключениями.

Кто-нибудь знает, как принудительно отправить электронное письмо, когда вы уже поймали исключение?

Ответы [ 2 ]

30 голосов
/ 20 ноября 2009

Я понял, как это сделать. Вот код, который вы бы поместили в свой контроллер для запуска электронной почты.

Для Rails 2.3 версии плагина Exception_Notification :

begin
    10 / 0
rescue Exception => e
    ExceptionNotifier.deliver_exception_notification(e, self, request)
end

Для Rails 3 версии плагина Exception_Notification :

begin
    10 / 0
rescue Exception => e
    ExceptionNotifier::Notifier.exception_notification(request.env, e).deliver
end

Для Rails 4 версии (в настоящее время v4.0.1 гема исключения_ уведомления):

begin
  some code...
rescue => e
  ExceptionNotifier.notify_exception(e)
  ExceptionNotifier.notify_exception(e, env: request.env, data: { message: "oops" })
end
0 голосов
/ 01 октября 2009

Exception Notifier специально разработан для отлова необнаруженных ошибок. Как только вы поймете ошибку, вы сами можете отправить электронное сообщение. Быстрый и грязный способ - вызвать код почтового отправителя исключения, когда вы перехватываете исключение. Я не могу вспомнить, как этот метод шел мне в голову, но быстрый взгляд на плагин должен дать вам результаты. Ищите render_exception_in_public (или что-то подобное) для кода почтовой программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...