tho*_*edb 36 actionmailer observer-pattern ruby-on-rails-3
每当我的应用程序发送电子邮件时,我都想运行一些代码.
由于ActionMailer不支持after_filter,我想使用观察者.
Rails文档顺便提一下,但没有详细说明.
谢谢!
Dyl*_*kow 76
我很惊讶Rails的文档中有这么多.
基本上,Rails 3中的ActionMailer引入了Interceptor的使用(在发送消息之前调用)和Observers(在消息发送之后).
要设置Observer,请将以下内容添加到初始值设定项:
class MailObserver
def self.delivered_email(message)
# Do whatever you want with the message in here
end
end
ActionMailer::Base.register_observer(MailObserver)
Run Code Online (Sandbox Code Playgroud)
现在,该delivered_email方法将在您的应用每次发送电子邮件时运行.但是,您只能访问实际的Mail消息.
要注册Interceptor,请执行与上面相同的操作,替换register_observer为register_interceptor,并将方法重命名self.delivered_email为self.delivering_email.
这个Railscast是我能找到的最好的信息来源(他们只讨论拦截器,但观察者的概念是相同的).
| 归档时间: |
|
| 查看次数: |
6759 次 |
| 最近记录: |