我正在使用Ruby修改一个YAML文件。在我将修改后的YAML写回文件后,我看到文件顶部添加了---
。这是如何添加的?我该如何去掉它?
YAML规范指出:
YAML使用三个破折号(“---”)将指令与文档内容分开。如果没有指令,这也表示文档的开始。
例如:
# Ranking of 1998 home runs
---
- Mark McGwire
- Sammy Sosa
- Ken Griffey
# Team ranking
---
- Chicago Cubs
- St Louis Cardinals
如果您在一个YAML文件中有多个文档,那么您需要用三条破折号将它们分开。如果只有一个文档,可以删除/省略它(如果缺少三个破折号,在Ruby中使用YAML时我从未遇到过问题)。当您将对象转化为YAML格式时,为什么会添加三个破折号呢?我想是因为转储器是按照规范编写的,并且不关心实现这样的“快捷方式”(当只有一个文档时省略三个破折号)。
yaml.gsub("---\n", '')
进行替换。 - Sergio Tulentsevhash.to_yaml.gsub(...)
。 - Sergio Tulentsev