我有一个包含多个域的Rails应用程序。在config/initializers/devise.rb
内,我设置了mail_sender
,如上所示:
config.mailer_sender = Proc.new { request.host.include?('somedomain') ? "noreply@somedomain.com" : "noreply@theotherdomain.com" }
但我无法访问变量request
,也无法访问ApplicationController中的任何其他帮助程序。你知道吗?
提前致谢
答案 0 :(得分: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
答案 1 :(得分:-1)
我认为您应该在邮件中设置发件人。这意味着您必须为此覆盖设计邮件程序。一个简单的解决方案是使用以下内容(另外我将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"
希望能帮到你