根据request.url更改Rails 4 production.rb常量

时间:2014-03-06 08:50:45

标签: ruby actionmailer production-environment ruby-on-rails-4.1

请有人指出我正确的方向,我确定这是一个简单的问题,但是让我绕圈子。我有三个域

  1. .COM
  2. .com.au
  3. .co.nz

    我正在尝试为维护保留一个代码库。

  4. 我已经完成了一些手动本地化工作,根据网址更改标题,联系方式等,使用request.original_url and stripping out the relevant parts and setting some constants in the application controller (SITE, EMAIL, TELEPHONE etc).

    除了config.action_mailer.smtp_settings in the production.rb.

    之外,一切正常

    这些显然应该更改,因此本地化电子邮件帐户使用(info @ ... com或.com.au等),但

    在加载环境之前,我无法初始化常量。它完全合理,为什么它不起作用,但我不知道如何解决它。

    我已尝试将其放入初始值设定项 application.rb 并将其设置在 production.rb 本身。如果我将代码从应用程序控制器移到任何地方,我在 request.original_url 上得到no方法错误。

    有没有办法提取mailer settings以便它们可以暴露给变量?或者是应用程序启动时加载production.rb,之后不受最终用户的影响。

    另外,即使语言保持不变,我应该查看i18n是否操作这些功能的网站?或者我想改变的少数变量是不值得的。

    提前致谢。

2 个答案:

答案 0 :(得分:1)

您只需在运行时更改设置:

ActionMailer::Base.smtp_settings[:host] = 'yourhostfromrequest'

答案 1 :(得分:0)

你可以只更改邮件程序中的常量,因为Ruby中的常量是 mutable