Chef-Ruby-如何从嵌套数组/列表中提取值

时间:2018-08-25 18:26:23

标签: arrays ruby chef

我正在使用此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 :(得分:0)

x.each返回x。您需要x.map