Ruby on rails Rails-类UserMailer<;ActionMailer::Base

Ruby on rails Rails-类UserMailer<;ActionMailer::Base,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我目前的应用程序邮件设置如下: 步骤1: 观察者监视表,并在被保存在观察者中的after_触发时发送电子邮件 步骤2: 然后,观察者调用类似于:UserMailer.XXXXXX\u created\u通知(record.deliver) 步骤3: 用户mailer将邮件发送出去: def XXXXXX_created_notification(record) @record = record mail(:to => "#{record.email}", :reply_

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

步骤1: 观察者监视表,并在被保存在观察者中的after_触发时发送电子邮件

步骤2: 然后,观察者调用类似于:
UserMailer.XXXXXX\u created\u通知(record.deliver)

步骤3: 用户mailer将邮件发送出去:

  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文件中?还是在《观察家》中

建议


谢谢

如果我必须选择,我会选择观察家,然而,大多数与我共事的人都会建议将此逻辑移到控制器中。在许多情况下,您可能不希望根据观察到的行为发出电子邮件——可能您在管理上下文中使用这些模型,或者通过控制台使用模型,等等