Шаблон Chef отрисовывает вложенный объект

Я пытаюсь отобразить объект yaml в шаблоне chef, он работает нормально, но, как мы знаем, в пространствах 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

И второе, есть ли способ удалить типы (!ruby/hash:Mash) а также --- из функции to_yaml?

1 ответ

Вы обычно хотите использовать to_json, поскольку весь JSON является действительным YAML. Это немного некрасиво, но обычно работает лучше:)

Другие вопросы по тегам