通过ruby代码读取和更新YAML文件

我写了一个像这样的yml文件:

last_update: '2014-01-28 11:00:00' 

我正在读这个文件

 config = YAML.load('config/data.yml') 

后来我访问last_update_time作为config [‘last_update’],但它无法正常工作。 另外我想用我的ruby代码更新last_update_time,就像它应该更新一样:

  last_update: '2014-01-29 23:59:59' 

我不知道该怎么做。

切换.load到.load_file你应该很高兴。

 #!/usr/bin/env ruby require 'yaml' config = YAML.load_file('data.yml') puts config['last_update'] 

运行后这就是我得到的

 orcus:~ user$ ruby test.rb # ⇒ some_data 

要编写该文件,您需要打开YAML文件并写入句柄。 这样的事情应该有效。

 require 'yaml' config = YAML.load_file('data.yml') puts config['last_update'] #in my file this is set to "some data" config['last_update'] = "other data" File.open('data.yml','w') do |h| h.write config.to_yaml end 

输出是

 orcus:~ user$ ruby test.rb some data orcus:~ user$ cat data.yml --- last_update: other data