2017-06-21 4 views
0

Ich habe einen Hash in .YML, die ich iterieren und dann seine Elemente zu einem Array von startup_ports hinzufügen möchte.Ruby: Wie man ein Yml iteriert und Elemente zu einem Array hinzufügt

z. .yml:

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

In meinem Ruby-Code:

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

Ich möchte hier ein Array erstellen, die die startup_port für beide Instanzen speichert.

+1

Wie haben Sie Ihre yaml in das Skript bekommen? Haben Sie YAML.load_file verwendet? –

Antwort

2

Lassen Sie uns sagen, dass Ihre Datei 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 aufgerufen:

einen String anhängen

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

'require 'yaml' benötigt? –

+0

großartig, es gab mir die Anordnung [8811,9911]. Aber ich möchte auch eine Zeichenfolge an jede davon anhängen - zB will ich [VERSION_8811, VERSION_9911]. Wie kann ich das machen? – user6378152

+0

wunderbar! Danke vielmals – user6378152

Verwandte Themen