私はこのようなymlファイルを書きました:
last_update: '2014-01-28 11:00:00'
私はこのファイルを次のように読んでいます
config = YAML.load('config/data.yml')
後でlast_update_timeにconfig ['last_update']としてアクセスしていますが、機能していません。また、私はlast_update_timeを私のRubyコードで更新したいので、次のように更新する必要があります:
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