Как сделать дамп YAML без информации о классе?

Я сбрасываю массив объектов тестового класса, и мой YAML показывает это:

---
- !ruby/object:Test
  id: rec1NIfdJz
- !ruby/object:Test
  id: rec1R9TtHF

Проблема возникает, когда я использую Middleman, а затем выдает ошибку при разборе YAML.

YAML Exception parsing ... undefined class/module Test

🤔 А знаете ли вы, что...
Ruby был создан в Японии Юкихиро Мацумото и впервые выпущен в 1995 году.


1
602
1

Ответ:

Решено

Сначала вам нужно уменьшить его до какой-то простой структуры Ruby, такой как Hash, например:

YAML.dump(object.to_h)

Если у вас есть или вы можете реализовать простой метод .to_h.

YAML, как и Marshal, попытается сохранить класс Ruby, представленный этим объектом. Нейтральные формы, такие как JSON, этого не делают, так что это может быть альтернативой.