【问题标题】:Handling properties/configurations in Rails在 Rails 中处理属性/配置
【发布时间】:2012-03-20 02:46:08
【问题描述】:
我希望能够将硬编码配置移出我的 .rb 文件。
我不想拥有这样的东西:
config.action_mailer.default_url_options = {
:host => 'www.mydomain.com',
}
我需要在不同机器之间轻松切换。
实现这一目标的最佳途径是什么?
谢谢
【问题讨论】:
标签:
ruby-on-rails
configuration
properties
environment-variables
【解决方案1】:
通常配置内容是为了保留在 .rb 文件中——这是在不同环境中实现不同配置的最佳途径。
因此,如果您有一个生产环境和一个 beta 环境,那么在 beta.rb 中您将拥有:
config.action_mailer.default_url_options = {
:host => 'beta.mydomain.com',
}
在 production.rb 中,您将拥有:
config.action_mailer.default_url_options = {
:host => 'www.mydomain.com',
}
如果您尝试将配置设置存储在其他位置,您可能会尝试更改设置,因为您的部署环境不是静态的(如 EC2,您可能会不断启动和关闭具有不同 IP 的机器) .在这种情况下,我建议研究像 rubber 或 chef 这样的工具,它们提供了转换配置文件的编程方式。