rails generate ruby-on-rails-3 observer-pattern actionmailer

ruby-on-rails-3 - rails generate email



¿Cómo creo un Mailer Observer? (1)

Me sorprende lo poco que hay en la documentación de Rails sobre esto.

Básicamente, ActionMailer in Rails 3 introduce el uso de interceptores (llamados antes de que se envíe el mensaje) y observadores (después de enviar el mensaje).

Para configurar un Observer, agregue lo siguiente a un inicializador:

class MailObserver def self.delivered_email(message) # Do whatever you want with the message in here end end ActionMailer::Base.register_observer(MailObserver)

Ahora, el método delivered_email se ejecutará cada vez que su aplicación envíe un correo electrónico. Sin embargo, solo tendrá acceso al mensaje de Mail real.

Para registrar un Interceptor en su lugar, haga lo mismo que arriba, reemplazando register_observer con register_interceptor , y self.delivered_email el nombre del método de self.delivered_email a self.delivering_email .

Este Railscast fue la mejor fuente que pude encontrar para obtener información sobre esto (solo hablan de interceptores, pero el concepto es el mismo para los observadores).

Me gustaría ejecutar algún código cada vez que se envíe un correo electrónico en mi aplicación.

Como ActionMailer no es compatible con after_filter, me gustaría usar un observador.

The Rails lo menciona al pasar, sin embargo no detalla.

¡Gracias!