Отображение многие-к-одному в YAML - PullRequest
0 голосов
/ 15 июля 2011

Я пытаюсь представить отображение типа «многие к одному» в файле конфигурации 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'

Является ли это возможным в некотором роде?

Заранее спасибо

1 Ответ

1 голос
/ 15 июля 2011

Это должно работать следующим образом:

создать файл в конфигурации с именем 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 / initializers, например config_servers.rb с содержимым

CONFIG = YAML.load_file("#{RAILS_ROOT}/config/server_config.yml")

и вы можете получить свой адрес через

CONFIG['server'][1]['address'] in your application

Это не проверено, но я думаю, что это будет работать.Я просто немного не уверен насчет этих цифр в файле yaml

...