ruby 厨师模板:使用嵌套对象生成配置文件

6ovsh4lw  于 12个月前  发布在  Ruby
关注(0)|答案(2)|浏览(107)

我想从Chef模板生成一个配置文件。在Chef 13+中实现这一点的正确语法是什么
我有一个数据包与以下子键:

"mykey1" : {
  "param1" : "mysubvalue1",
  "param2" : "mysubvalue2"
},
"mykey2" : {
  "param1" : "mysubvalue11",
  "param2" : "mysubvalue22"
},

然后在我的食谱中,我使用模板资源:

template 'mytemplate.erb'
  ...
  variables ({
     :keys => [mykey1, mykey2]
  })
end

然后在模板中:

<% @keys.each_pair do |name, _object| %>
  ["#{name}"]
  param1 = "#{_object.param1}"  # will this work??
<% end %>

引用param1param2的正确方法是什么

xzlaal3s

xzlaal3s1#

当你得到这样的数据时,它是一个普通的Ruby哈希对象。所以你可以使用_object["param1"]

fhity93d

fhity93d2#

多年后来到这里?试试这个:

<% @keys.each_pair do |name, _object| %>
["#{name}"]
<%   _object.each do |param, sub| -%>
  <%= param %> = "<%= sub %>"
<%   end # _object.each -%>
<% end   # keys.each -%>

告诉我进展如何。

相关问题