如何在不丢失注释和变量的情况下更新Rails区域设置YML文件?

时间:2013-05-05 23:52:25

标签: ruby-on-rails ruby yaml

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

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

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

1 个答案:

答案 0 :(得分:2)

我认为你不能。

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

我能想到的唯一方法就是在YAML之外打开文件,然后编写注释,然后编写使用to_yaml创建的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