【问题标题】:Update value of key of a yaml file in ruby on rails在 ruby​​ on rails 中更新 yaml 文件的键值
【发布时间】:2012-12-06 14:27:38
【问题描述】:

我有一个带有一些键值的 yml 文件。

age: 24
Name: XYZ

我希望代码将“名称”键的值从 XYZ 更新为 ABC? 我该怎么做?

【问题讨论】:

    标签: ruby-on-rails yaml


    【解决方案1】:
        require 'yaml'
        data = YAML.load_file "path/to/yml_file.yml"
        data["Name"] = ABC
        File.open("path/to/yml_file.yml", 'w') { |f| YAML.dump(data, f) }
    

    它将写入 yml 文件。如果文件中不存在指定的键(“名称”),它将写入新的键值,否则将替换现有的键值。

    【讨论】:

    • 我们可以在 yml 文件中向这个数据对象写入一个新值吗?
    • 更容易做到:File.write('/path/to/file', 'Some glorious content')
    • 我相信这也需要require 'yaml'
    • 我必须像这样以二进制模式打开文件:File.open("path/to/yml_file.yml", 'wb') { |f| YAML.dump(data, f) }。否则我会收到一些错误,例如/usr/local/lib/ruby/2.2.0/psych/visitors/emitter.rb:27:in 'write': "\xC3" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
    • 如果 yaml 文件包含引用,则此方法不起作用(这是使用 yaml 文件而不是 json 的很大一部分原因)。我会在这里发布一个示例,但降价是有限的。
    猜你喜欢
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 2013-10-01
    • 2011-03-17
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多