2017-06-10 4 views
1

の配列を反復処理:ERB:私は以下のような人形でhieraデータを持っているハッシュ

myservers: 
    - serverA: 
     propertyA: valueA 
     propertyB: valueB 
     propertyC: valueC 
    - serverB: 
     propertyA: valueD 
     propertyB: valueE 

が好きで、このデータから設定ファイルをプリントアウトする必要があります:私はこれを入れしようとしています

serverA: PropertyA: valueA ; propertyB: valueB ; propertyC: valueC 
serverB: PropertyA: valueD ; propertyB: valueE 

erbテンプレートでは、ハッシュの配列を繰り返し処理しますが、正しくフォーマットすることはできません。私はあなたが書くために何を意味するのかと考えてい

<% myservers.each do |server| -%> 
<%= server -%>: <%= server.each do |k,v| -%> <%= k -%>: <%= v -%> ; 
<% end %> 
<% end -%> 

答えて

1

は次のとおりです。

<% @myservers.each do |server| -%> 
<% server.keys.each do |s| -%> 
<%= s %>: <% server[s].each do |k,v| -%><%= k -%>: <%= v -%> ;<% end %> 
<% end -%> 
<% end -%> 

それとも、(あなたが知っていれば、各配列要素はあなたの例のように、サーバーを1つだけ含まれています):

<% @myservers.each do |server| -%> 
<%= server.keys[0] %>: <% server[server.keys[0]].each do |k,v| -%><%= k -%>: <%= v -%> ;<% end %> 
<% end -%> 

言い換えれば、実際にハッシュのハッシュの配列をハッシュの配列として扱っています。

また、Puppetマニフェストの変数は、ERBテンプレート内のインスタンス変数として表示されるため、@です。 hereを参照してください。

+0

コードの修正を行うと、回答の質が向上します。 –

+0

私は、この周りに言葉を置くことはずっと助けになるとは思っていませんが、どうにかして更新しました。 –

+1

OK、ERBテンプレートのインスタンス変数としてパペット変数が渡されることについての説明を再度更新しました。 –

関連する問題