在YAML中映射多对一



我试图在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'

这在某种程度上可行吗?

提前感谢

应该是这样的:

创建一个名为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/初始化器中,比如config_servers。内容为

的Rb
CONFIG = YAML.load_file("#{RAILS_ROOT}/config/server_config.yml")
你可以通过 得到你的地址
CONFIG['server'][1]['address'] in your application

还没有测试过,但我认为它会起作用。我对yaml文件

中的数字不太确定

最新更新