Rails - 类UserMailer<的ActionMailer :: Base的

时间:2010-11-27 17:55:40

标签: ruby-on-rails ruby-on-rails-3

我目前的应用程序邮件设置如下:

第1步: 观察者监视表,并在观察者

中由after_save触发时发送电子邮件

第2步: 观察者然后调用类似:UserMailer.XXXXXX_created_notification(record).deliver

的内容

第3步: 用户邮件程序将邮件发送出去:

  def XXXXXX_created_notification(record)
    @record = record
    mail(:to => "#{record.email}", :reply_to => "Reply to XXXXX", :subject => "XXXXX Notification")
  end

我向rails专家提出的问题是,我希望为用户提供打开/关闭某些网站范围通知的功能。 Rails最好的地方在哪里烤?在包含在def里面的user_mailer.rb文件中?还是在观察者?

建议?

由于

1 个答案:

答案 0 :(得分:0)

如果我必须选择,我会选择观察者 - 我与之合作过的大多数人都建议将这个逻辑移到控制器中。在许多情况下,您可能不希望根据观察到的行为触发电子邮件 - 也许您在管理环境中使用这些模型,或通过控制台等处理模型。