Chef模板呈现嵌套对象

时间:2018-07-25 06:49:29

标签: chef chef-template

我正在尝试在Chef模板中渲染yaml对象,效果很好,但是正如我们所知,在yaml空间中也很重要,因此它正在创建新属性。

collection: <%= @collection.to_hash.to_yaml %>

集合是json对象

collection = { "name": "col1", "nested": { "nKey": 1 } }

预期结果是

collection:
  name: col1
  nested:
    nKey: 1

获取结果

collection: ---
  name: col1
nested: !ruby/hash:Mash #nested is not part of collection.
  nKey: 1

第二种方法是从to_yaml函数中删除类型(!ruby/hash:Mash)和---吗?

1 个答案:

答案 0 :(得分:0)

您通常要使用to_json,因为所有JSON都是有效的YAML。有点难看,但通常效果更好:)