如何在没有 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 这样的中性形式没有,所以这可能是一个替代方案。
我正在转储一组测试 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 这样的中性形式没有,所以这可能是一个替代方案。