Ich bin neu in Ruby und Chef Ich habe Probleme zu verstehen, wie verschachtelte Elemente aus einem Databag (Chef_Vault) zu bekommen. Ich denke, das ist mehr eine grundlegende Ruby-Frage, aber nicht sicher, ob etwas Chef spezifisch.Versuchen Sie, chef_vault und Ruby-Sammlungen zu verstehen
Ich habe dieses Gewölbe:
$json = '{
"KEY1": [{
"SUBKEY1": "aaaaa",
"SUBKEY2": "bbbbbbb",
"SUBKEY3": "cccccccc"
}],
"KEY2": [{
"SUBKEY1": "dddddd",
"SUBKEY2": "eeeeee"
}],
"KEY3": "fffffff",
"KEY4": "ggggggg"
}'
knife vault create test_vault vaultitem1 $json --admins red888 --mode client --search 'role:testservers'
Hier ist, was ich bemerkt, wenn man versucht, verschachtelte Elemente aus es in meinem Rezept zu bekommen:
test_vault = ChefVault::Item.load("test_vault", "vaultitem1")
puts test_vault.class
puts test_vault['SUBKEY1'].class
puts test_vault['SUBKEY1'].inspect
puts test_vault['SUBKEY1'][0]['SUBKEY2']
Nun, was ich in der Konsole sehen:
Ursprünglich habe ich versucht test_vault['KEY1']['SUBKEY2']
, die mir einen Fehler gab. Meine Frage ist, warum muss ich tun test_vault['KEY1'][0]['SUBKEY2']
was bin ich mit [0] indexieren?