Chef - Ruby - Как извлечь значения из вложенного массива / списка - PullRequest
0 голосов
/ 25 августа 2018

Я использую этот контент json (я открыт для предложений по улучшению форматирования здесь):

{"forwardingZones": [{"name": "corp.mycompany.com","dnsServers": ["192.168.0.1","192.168.0.2"]}]}

Примечание: мы можем добавлять больше элементов в этот список по мере масштабирования, как больше IP-адресов, так и больше имен, следовательно, "join (',')" в конце кода ниже.

И я пытаюсь пройтись по нему, чтобы получить такой результат:

corp.mycompany.com=192.168.0.1;192.168.0.2

Используя этот код:

forward_zones = node['DNS']['forward_zones'].each do |forwarded_zone|
forwarded_zone_name = forwarded_zone['name']
forwarded_zone_dns_servers = forwarded_zone['dns_servers'].join(';')
"#{forwarded_zone_name}=#{forwarded_zone_dns_servers}"
end.join(',')

Вот результат, который я получаю:

{"dnsServers"=>["192.168.0.1", "192.168.0.2"], "name"=>"corp.mycompany.com"}

Что я делаю не так ...?

1 Ответ

0 голосов
/ 25 августа 2018

x.each возвращает x. Вы хотите x.map.

...