【问题标题】:How do I update Rails locale YAML file without loosing comments and variables?如何在不丢失注释和变量的情况下更新 Rails 语言环境 YAML 文件?
【发布时间】:2013-04-29 17:04:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby yaml


    【解决方案1】:

    我不认为你可以。

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

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

    【讨论】:

    • 是的,这就是我已经遵循的方式,但我想到了更好的方法。更新这个 yaml 附加代码非常困难...请您详细说明一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多