bre*_*ter 4 ruby yaml ruby-on-rails erb
假设我的rails配置有一个yml文件...
settings.yml中
defaults: &defaults
interceptor_email: robot@wearemanalive.com
development:
<<: *defaults
test:
<<: *defaults
production:
<<: *defaults
Run Code Online (Sandbox Code Playgroud)
我希望有另一个yml文件,它不包含在版本控制中,每个开发人员都在本地维护...
user_settings.yml
development:
interceptor_email: userfoo@domain.com
Run Code Online (Sandbox Code Playgroud)
如何合并这些密钥?我正在用esb处理我的yml文件,所以这也是一个选项.只是无法弄清楚如何做到这一点.我有它设置所以如果我的环境缺少一个键,键会回退到默认值.
你不能分别阅读两个yml文件吗?
settings = YAML.load(path_to_settings)[RAILS_ENV].symbolize_keys
user_settings = YAML.load(path_to_user_settings)[RAILS_ENV].symbolize_keys
settings.merge!(user_settings)
Run Code Online (Sandbox Code Playgroud)
现在您应该拥有设置的哈希值,然后您可以根据需要合并哈希值.如果第二个哈希与第一个哈希具有相同的密钥,则第一个哈希将被覆盖.