2013-09-28 3 views
0

Привет всем Я возвращаю данные из базы данных и сохраняю их в File.i am, строя данные в формате yaml.Ruby - Не удалось прочитать файл 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 :: нагрузить он дает свою единственную первую запись. Я хочу загрузить все записи, помощь plz. ниже мой код для чтения 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 (open ("D: /jive_group.yml") вместо YAML :: load (File.read ('D: /jivegroup.yml'))

Смежные вопросы