大家好我正在从数据库中检索数据并将其存储在File.i am yaml格式的数据中。
require 'mysql2'
require 'yaml'
client = Mysql2::Client.new(:host => "localhost",:username => 'root' , :password => 'root' , :database => 'jgroup')
results = client.query("SELECT * FROM jivegroup")
File.open("D:/j.yml","w") do |file|
results.each do |index|
file.write(index.to_yaml);
end
end
below is my file "j.yml"
---
groupID: 1000
name: T1
description: ""
creationDate: 1209446456903
modificationDate: 1378128624533
---
groupID: 1001
name: T2
description:
creationDate: 1209446473683
modificationDate: 1378181717000
---
但是当我试图用YAML :: load加载上面的文件时,它是我唯一的第一条记录。我想加载所有记录,PLZ帮助。 下面是我读取yml文件的代码
YAML::load( File.read('D:/jivegroup.yml') )
{"groupID"=>1000, "name"=>"T1", "description"=>"", "creationDate"=>1209446456903, "modificationDate"=>1378128624533}
答案 0 :(得分:0)
如果您绝对想要使用此文件设计,请使用YAML::load_documents
一次加载多个记录。
我建议改为使用文件中的列表。它对我来说似乎更清晰(因为你所拥有的是类似记录的列表,而不是一组不相关的文档)。
答案 1 :(得分:0)
嘿终于找到了关于堆栈溢出本身的问题的答案。我使用了YAML.load_stream(open(“D:/jive_group.yml”)而不是YAML :: load(File.read('D:/jivegroup.yml'))