如何在没有 class 信息的情况下进行 YAML 转储?

How do I YAML dump without the class information?

我正在转储一组测试 class 对象,我的 YAML 显示如下:

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

问题出现在我使用Middleman然后YAML解析报错

YAML Exception parsing ... undefined class/module Test

您需要先将其缩减为某种普通的 Ruby 结构,例如哈希,例如:

YAML.dump(object.to_h)

如果你有,或者可以实现一个简单的 .to_h 方法。

YAML 与 Marshal 一样,将尝试保留该对象表示的 Ruby class。像 JSON 这样的中性形式没有,所以这可能是一个替代方案。