ruby-on-rails - 通过 ruby​​ 代码读取和更新 YAML 文件

标签 ruby-on-rails 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

关于ruby-on-rails - 通过 ruby​​ 代码读取和更新 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21422494/

相关文章:

linux - 如何将脚本的输出保存在ansible 2.0.2文件中

ruby - 检查两个字符串是否包含相同的字母

ruby - watir 打印/放置所有可见链接

yaml - CloudFormation YAML 状态机 : INVALID_JSON_DESCRIPTION for unrecognized token

shell - 如何将yaml文件格式化为csv格式?

ruby-on-rails - Rails 4 错误,每个命令 "` load' : no implicit conversion of nil into String"(Mac OS X 10. 9)

ruby-on-rails - 英雄联盟 : Postgres - could not connect to server: Connection refused

ruby-on-rails - 部署docker-composer镜像时出现困惑

html - 在 HAML 中递增 ID 的最简单方法是什么?

ruby-on-rails - 在总共 90 个 gem 中找不到 'berkshelf' (>= 0) (Gem::LoadError)