【发布时间】:2015-06-09 15:42:18
【问题描述】:
我阅读了一些有关 Yaml 或 yml 文件格式的快速教程。我制作了一个 yaml 文档来表示我的数据。我看到了一些 ruby 教程,它们告诉你如何用 ruby 提取 yaml。不幸的是,他们只打印整个数据或只打印键和值。它不符合我的需求。请帮忙。
yaml 文件 -
dev:
game1:
server1:
url: 'dev-game1-a-srv01.gamer.com'
log-path: '/srv/logs'
server2:
url: 'dev-game1-a-srv02.gamer.com'
log-path: '/srv/logs'
game2:
server1:
url: 'dev-game2-a-srv01.gamer.com'
log-path: '/srv/logs'
server2:
url: 'dev-game2-b-srv02.gamer.com'
log-path: '/srv/logs'
server3:
url: 'dev-game2-b-srv01.gamer.com'
log-path: '/srv/logs'
prod:
etc....
如何使用 ruby 代码选择 dev、game2、server 3、url?
使用下面的代码,我得到一个异常 -
require 'yaml'
def server_info
path = 'C:\Code\demo-srv.yml'
yml = YAML::load(File.open(path))
game2 = yml['dev']['game2']
game2.each{|server|
if server['server3']
puts server['server3']['url']
end
}
end
server_info
错误 -
server.rb:8:in `[]': can't convert String into Integer (TypeError)
from server.rb:8:in `server_info'
from server.rb:7:in `each'
from server.rb:7:in `server_info'
from server.rb:14
【问题讨论】: