如何将值保存到YAML文件中?

fre*_*dom 45 ruby yaml ruby-on-rails-3

在我的persist.yml文件中.我有以下键值对...

session = 0
Run Code Online (Sandbox Code Playgroud)

如何更新YAML文件,以便:

session = 2
Run Code Online (Sandbox Code Playgroud)

Chr*_*cca 98

使用ruby-1.9.3(方法可能在旧版本中不起作用).

我假设文件看起来像这样(相应地调整代码):

---
content:
    session: 0
Run Code Online (Sandbox Code Playgroud)

并被称为/tmp/test.yml

然后代码就是:

require 'yaml' # Built in, no gem required
d = YAML::load_file('/tmp/test.yml') #Load
d['content']['session'] = 2 #Modify
File.open('/tmp/test.yml', 'w') {|f| f.write d.to_yaml } #Store
Run Code Online (Sandbox Code Playgroud)

  • `File.write('/tmp/test.yml', d.to_yaml)` is simpler and does the same thing. (16认同)
  • 1.8.7也可以正常工作 (2认同)