2016-07-15 16 views
0

Rubyとシェフが初めてです。データバッグ(chef_vault)からネストされた要素を取得する方法を理解できません。これはもっと基本的なRubyの質問だと思うけど、シェフが特定のものかどうかわからない。chef_vaultとrubyコレクションを理解しようとしています

私はこのボールトを作成しました:今、私は、コンソールに何を参照してください

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'] 

:ここ

$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' 

は私のレシピでそれのうちネストされた要素を取得しようとしたとき、私は気づいたものです

ChefVault::Item 
Array 
[{"SUBKEY1"=>"aaaaa", "SUBKEY2"=>"bbbbbbb", "SUBKEY3"=>"cccccccc"}] 
{"SUBKEY1"=>"aaaaa", "SUBKEY2"=>"bbbbbbb", "SUBKEY3"=>"cccccccc"} 
bbbbbbb 

元私はエラーを与えたtest_vault['KEY1']['SUBKEY2']を試しました。私の質問は、なぜ私がしなければならないのですかtest_vault['KEY1'][0]['SUBKEY2']私は[0]でインデックスを作成していますか?

答えて

1

KEY1およびKEY2は、いずれも単一のハッシュを含む配列です。 JSONをどのように設定すれば、それを使用する必要があります。 Rubyのことではありません。

関連する問題