2013-09-28 93 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'))