2017-06-21 58 views
0

我有一個散列在.yml,我想要迭代,然後將其元素添加到startup_ports的數組。ruby​​:如何迭代一個yml並添加元素到一個數組

E.g. .yml:

instances: 
    instance1: 
    startup_port: 8811 
    shutdown_port: 8822 
    instance2: 
    startup_port: 9911 
    shutdown_port: 9922 

在我的Ruby代碼:

details['instances'].each do |instancename, attribs| 
startup_port = attribs[:startup_port] 

我想在這裏創建一個數組存儲的startup_port的兩個實例。

+1

你是如何得到你的YAML到你的腳本?你使用YAML.load_file嗎? –

回答

2

比方說,你的文件被稱爲example.yml

# assuming your file is in rails root 
contents = YAML.load_file('example.yml') 
contents['instances'].collect{|key, value| value['startup_port']} 
=> [8811, 9911] 

UPDATE:

追加一個字符串

contents['instances'].collect{|key, value| "VERSION_#{value['startup_port']}"} 
+0

'需要'yaml''需要? –

+0

太棒了,它給了我陣列[8811,9911]。但我想爲每個字符串附加一個字符串 - 例如我想[VERSION_8811,VERSION_9911]。我怎樣才能做到這一點? – user6378152

+0

太棒了!非常感謝 – user6378152

相關問題