Rails:在环境文件中获取root_url

时间:2012-05-21 21:05:32

标签: ruby-on-rails configuration helper host

rails中的Helper方法会自动检测应用程序的根URL。例如,user_signup_url会自动使用mydoimain.com/user_signup

但是,在我的环境/ production.rb中,我必须手动设置我的主机。

config.action_mailer.default_url_options = { :host => 'mydomain.com' }

有没有办法自动设置此设置?或许像下面这样:

config.action_mailer.default_url_options = { :host => ROOT_URL }

谢谢!

2 个答案:

答案 0 :(得分:0)

如果我没记错的话,主机会从传入的请求中“猜到”。这就是为什么它可以在您的控制器和视图中访问。但是,邮件程序级别没有请求对象,因此在这种情况下你必须要详细。

答案 1 :(得分:0)

在某个地方设置一个常量,就像你描述的那样。把它放在application.rb的顶部,或者每个开发环境文件中可能有不同的值?

或者,也许您可​​以使用在内部声明的特定常量创建一个Constants类? (您的电话将是Constants::ROOT_URL。)

或者,在启动Rails之前在shell中设置一个环境变量,并使用ENV['ROOT_URL']

访问它

另一个答案提到taht _path帮助者不需要域名。这是事实 - 但我不确定_url助手是如何工作的,因为他们应该给你一个完整的URI我认为?您可能想要调查_url助手的工作方式。