我正在尝试在rake的YAML配置文件中引入多对一的映射。
也就是说,我有类似的东西:
- server: address
我希望有类似的东西:
- server: {1, 3, 5: address1; 2, 8, 12: address2}
当然,这不是正确的语法。
这是因为我根据给定的ID需要不同的地址。
CONFIG['server'][3] # this should return 'address1'
CONFIG['server'][5] # this should return 'address1' too
CONFIG['server'][12] # and this should return 'address2'
这在某种程度上是否可行?
提前谢谢
答案 0 :(得分:1)
它应该以这种方式工作:
在config中创建一个名为server_config.yml的文件:
common: &common
common_stuff_foo: foo
common_stuff_bar: bar
server:
1:
<<: *common
adress: adress_for_server1
2:
<<: *common
adress: adress_for_server2
... #some other servers
12:
<<: *common
adress: adress_for_server12
将一个文件放入配置/初始化程序,如config_servers.rb,内容为
CONFIG = YAML.load_file("#{RAILS_ROOT}/config/server_config.yml")
您可以通过
获取您的地址CONFIG['server'][1]['address'] in your application
它没有经过测试,但我认为它会起作用。我对yaml文件中的那些数字有点不确定