rails 3,如何在Settings.yml文件中使用ENVconfigurationvariables?
在我的settings.yml文件中,我有几个configurationvariables,其中一些引用ENV []variables。
例如我有ENV ['FOOVAR']等于WIDGET
我以为我可以像这样在<%%>里面引用ENVvariables:
settings.yml中:
default: cv1: Foo cv2: <% ENV['FOOVAR'] %> 在轨道控制台,如果我input
 > ENV['FOOVAR'] => WIDGET 
但
 > Settings.cv1 => Foo (works okay) > Settings.cv2 =>nil (doesn't work???) 
	
使用以下内容: –
  default: cv1: Foo cv2: <%= ENV['FOOVAR'] %> 
 使用<%= ENV['FOOVAR'] %>而不是<% ENV['FOOVAR'] %> 。 
请注意,这种方法只有在parsingYaml文件的时候才能通过Erb来处理(例如,你可以看到Mongoid如何做到这一点 )。 Yaml文件并没有普遍支持,所以这取决于你使用这个Yaml文件。
上述解决scheme不适合我。 但是,我发现解决scheme如何在YAML文件中使用variables?
我的.yml文件包含像这样的东西:
 development: gmail_username: <%= ENV["GMAIL_USERNAME"] %> gmail_password: <%= ENV["GMAIL_PASSWORD"] %> 
解决scheme如下所示:
 template = ERB.new File.new("path/to/config.yml.erb").read processed = YAML.load template.result(binding) 
所以当你在.yml文件中引入scriptlet标签时,它更多的是erb模板。 所以首先阅读它作为一个erb模板,然后加载如上所示的yml。