Rails&Devise:如何自动使用域名配置邮件?

Dav*_*edy 5 ruby-on-rails devise engineyard

我需要一些有关在生产Ruby-on-Rails站点中配置邮件的建议。

我在EngineYard上部署了Rails应用程序。我有几个站点,例如- demo.mydomain.comstaging.mydomain.com-如何配置Devise,以便在部署时可以确保确认邮件来自demo.mydomain.comstaging.mydomain.com自动发送?,我想要相同的GitHub代码库,并希望动态填充配置。

目前在config/environments/production.rb我行:

config.action_mailer.default_url_options = { :host => 'demo.mydomain.com' }
Run Code Online (Sandbox Code Playgroud)

但是,当将相同的代码部署到staging.mydomain.com它们都在其中运行时,这是不正确的RAILS_ENV=production

有任何想法吗?

谢谢戴夫

更新:现在,为了实际操作,我添加了特定的环境来对邮件域进行硬编码。所以,现在demo.mydomain.com运行在environments/demo.rb,和www.mydomain.com上运行environments/productions.rb。我喜欢这个就是文件之间的重复,这不是很清楚,我怎么干起来,因为我有,例如database.yml

pho*_*oet 4

在您的设备配置中,通常config/initializers/devise.rb您可以配置设备的邮件发送者。此配置需要一个过程,以便可以在运行时评估某些内容。

Devise.setup do |config|
  config.mailer_sender = Proc.new { your_magic_here }
end
Run Code Online (Sandbox Code Playgroud)