Ruby on rails 4 在控制器级别覆盖默认ActionMailer收件人

Ruby on rails 4 在控制器级别覆盖默认ActionMailer收件人,ruby-on-rails-4,actionmailer,Ruby On Rails 4,Actionmailer,出于演示目的,我想在控制器级别覆盖Rails 4 ActionMailer收件人 下面的初始值设定项执行我想要的操作,但是当我想将mail.to地址更改为时,我需要重新提交代码并重新启动服务器 # config/initializers/override_mail_recipient.rb if Rails.env.production? class OverrideMailRecipient def self.delivering_email(mail) mail.to

出于演示目的,我想在控制器级别覆盖Rails 4 ActionMailer收件人

下面的初始值设定项执行我想要的操作,但是当我想将
mail.to
地址更改为时,我需要重新提交代码并重新启动服务器

# config/initializers/override_mail_recipient.rb
if Rails.env.production?
  class OverrideMailRecipient
    def self.delivering_email(mail)
      mail.to = 'example@domain.com'
    end
  end
  ActionMailer::Base.register_interceptor(OverrideMailRecipient)
end
我希望能够访问以下链接:

get '/default_mail_recipient/:email' => 'controller#default_mail_recipient', as: :mail_recipient
然后在控制器中:

def default_mail_recipient
    ActionMailer::Base.override_recipient = params[:email]
    redirect_to :root, :notice => "Default mail recipient overridden"
end

我怀疑这是否可能,但也许有一个Rails忍者可能会帮助我或为我指明另一个方向。

你想永远覆盖收件人吗?还是只发一封电子邮件?或者该如何工作?其想法是,有三到四个人向客户演示网站的开发环境,然后有能力在演示过程中临时覆盖所有邮件(对于所有用户确认和邀请邮件)。这些人没有开发人员访问权限,并且在指定的日期可能有多个演示文稿,因此他们可能希望根据需要进行更改。我希望这更清楚一点。