Joy*_*Joy 17 ruby yaml ruby-on-rails
我写了一个像这样的yml文件:
last_update: '2014-01-28 11:00:00'
Run Code Online (Sandbox Code Playgroud)
我正在读这个文件
config = YAML.load('config/data.yml')
Run Code Online (Sandbox Code Playgroud)
后来我访问last_update_time作为config ['last_update'],但它无法正常工作.另外我想用我的ruby代码更新last_update_time,就像它应该更新一样:
last_update: '2014-01-29 23:59:59'
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做.
Pho*_*bos 38
切换.load到.load_file,你应该好好去.
#!/usr/bin/env ruby
require 'yaml'
config = YAML.load_file('data.yml')
puts config['last_update']
Run Code Online (Sandbox Code Playgroud)
运行后这就是我得到的
orcus:~ user$ ruby test.rb
# ? some_data
Run Code Online (Sandbox Code Playgroud)
要编写该文件,您需要打开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
Run Code Online (Sandbox Code Playgroud)
输出是
orcus:~ user$ ruby test.rb
some data
orcus:~ user$ cat data.yml
---
last_update: other data
Run Code Online (Sandbox Code Playgroud)