9

我正在构建一个 Ruby 脚本来更改 config/locales/*.yml Rails 语言环境文件的内容。这些文件包含许多有用的注释和变量。

通过加载、更新和转储它们,我失去了这些注释和变量。

如何在保留注释和变量的同时以编程方式更新 YAML 文件?

4

1 回答 1

4

我不认为你可以。

YAML 会忽略数据文件中的注释,但不会解析它们,因此它们会在文件加载时被丢弃。加载文件后,它们就消失了。

我能想到的唯一方法是在 YAML 之外打开文件,然后编写注释,然后编写使用to_yaml. 就像是:

require 'yaml'

data = {
  'foo' => 'bar',
}

File.open('data.yaml', 'w') do |fo|
  fo.puts "# Don't mess with this."
  fo.puts data.to_yaml
end

这创造了:

# Don't mess with this.
---
foo: bar
于 2013-05-06T01:26:20.500 回答