2013-09-28 81 views
0

大家好我正在从数据库中取回数据并将其存储在File.i中,我正在以yaml格式存储数据。红宝石 - 无法读取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 
    --- 

但whenver我试图加载具有YAML上述文件加载::这是给我的只有第一个记录。我想加载所有记录,请帮助。下面 是我读YML文件

YAML::load(File.read('D:/jivegroup.yml')) 
    {"groupID"=>1000, "name"=>"T1", "description"=>"", "creationDate"=>1209446456903, "modificationDate"=>1378128624533} 

回答

0

如果你绝对要一起去这个文件的设计,然后使用YAML::load_documents同时加载多个记录代码。

我建议改为使用文件中的列表。这对我来说似乎更清洁(因为您拥有的是类似记录的列表,而不是一组不相关的文档)。

+0

嘿,谢谢你好建议 – user2588480

0

嘿最后找到答案我自己的问题堆栈溢出本身。我使用YAML.load_stream(打开(“D:/jive_group.yml”),而不是YAML :: load(File.read('D:/jivegroup.yml'))