在 aws_setting.yml 中为不同的环境配置,如:
local: &local_settings
enable_setting: true
heroku: &heroku_settings
enable_setting: <%= ENV['MY_SETTING'] %>
test:
<<: *local_settings
development:
<<: *local_settings
staging:
<<: *heroku_settings
&#13;
在heroku中添加MY_SETTING kvp 进行暂存配置变种
初始化期间加载的设置:
S3_SETTING = YAML.load_file("#{::Rails.root}/config/aws_setting.yml")[Rails.env]
现在,在部署到暂存后,而不是将S3_Setting['enable_setting']
的值设为true
或false
,而是接收&#39;&lt;%= ENV [&#39; MY_SETTING&#39 ;]%&gt;&#39;作为文本。
答案 0 :(得分:1)
这是因为您只是加载YAML。您还需要将内容解析为ERB以获得推断的值。
YAML.load(ERB.new(File.read("#{::Rails.root}/config/aws_setting.yml")).result)[Rails.env]