Ruby - 无法读取yaml文件

时间:2013-09-28 10:22:09

标签: ruby-on-rails-3 yaml file-handling

大家好我正在从数据库中检索数据并将其存储在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}

2 个答案:

答案 0 :(得分:0)

如果您绝对想要使用此文件设计,请使用YAML::load_documents一次加载多个记录。

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

答案 1 :(得分:0)

嘿终于找到了关于堆栈溢出本身的问题的答案。我使用了YAML.load_stream(open(“D:/jive_group.yml”)而不是YAML :: load(File.read('D:/jivegroup.yml'))