try rescue_from rails lanzar handling error catch ruby-on-rails exception-handling

ruby-on-rails - lanzar - rescue_from rails



Rails Exception Notification Plugin-Forzar el envío de correo electrónico (2)

Estoy usando el complemento de exception_notification notación de Rails en mi aplicación y lo encuentro muy útil.

Sin embargo, hay ocasiones en las que quiero detectar una excepción y tratarla con gracia, pero aún así me gustaría recibir el correo electrónico de notificación de excepción. Parece que solo se envía para las excepciones no captadas que parece.

¿Alguien sabe cómo forzar el envío del correo electrónico cuando ya ha detectado la excepción?


El Notificador de excepciones está diseñado específicamente para detectar errores no detectados. Una vez que detecte el error, depende de usted enviar el mensaje de correo electrónico usted mismo. La forma rápida y sucia es activar el código de envío de excepciones cuando se detecte la excepción. No puedo recordar cómo el método salió de mi cabeza, pero una mirada rápida en el complemento podría darte resultados. Busque el render_exception_in_public (o algo parecido) para el código de correo.


Me di cuenta de cómo hacer esto. Aquí está el código que pondría en su controlador para activar el correo electrónico.

Para la versión Rails 2.3 del complemento Exception_Notification :

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

Para la versión de Rails 3 del complemento Exception_Notification :

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

Para la versión de Rails 4 (actualmente v4.0.1 de la gema exception_notification):

begin some code... rescue => e ExceptionNotifier.notify_exception(e) ExceptionNotifier.notify_exception(e, env: request.env, data: { message: "oops" }) end