0

我有一个包含多个域的 Rails 应用程序。在里面config/initializers/devise.rb我已经设置了mail_sender如上所示:

config.mailer_sender = Proc.new { request.host.include?('somedomain') ? "noreply@somedomain.com" : "noreply@theotherdomain.com" }

但我无权访问变量request,也无权访问 ApplicationController 中的任何其他助手。你有什么想法吗?

提前致谢

4

2 回答 2

1

在 application_controller.rb

before_filter :site_smtp

def site_smtp
 if request.domain == "blabla.com"
    Devise.setup do |config|
      config.mailer_sender = "custom@blabla.com"
    end    
 end
end
于 2016-08-23T05:55:06.290 回答
0

我认为您应该在邮件中设置发件人。这意味着您将不得不为此覆盖设计邮件程序。一个简单的解决方案是使用以下内容(另外我将 application_helper 的视图助手添加到邮件程序):

# in config/initializers/devise.rb
config.mailer = "CustomDeviseMailer"

# app/mailers/custom_devise_mailer.rb
class CustomDeviseMailer < Devise::Mailer
helper :application
default from: request.host.include?('somedomain') ? "noreply@somedomain.com" : "noreply@theotherdomain.com" 

希望能帮到你

于 2013-08-02T11:08:14.190 回答