代码之家  ›  专栏  ›  技术社区  ›  NotDan

如何在ruby/rails中使用yaml?

  •  4
  • NotDan  · 技术社区  · 14 年前

    我有一个帐户列表,我想保存为yaml文件并将其加载到ruby中。像这样:

    Account1
      John Smith
      jsmith
      jsmith@gmail.com
    Account2
      John Doe
      jdoe
      jdoe@hotmail.com
    

    然后我想得到一个叫“约翰·杜”的人的电子邮件地址(例如)。

    我该怎么做?

    2 回复  |  直到 14 年前
        1
  •  10
  •   ab217    14 年前

    在这里,您将yaml对象保存为person对象,然后当您将其重新加载时,它们将加载到person对象中,使其更易于处理。

    首先,将yaml文件更改为如下所示:

    --- 
    - !ruby/object:Person 
      name: John Doe
      sname: jdoe
      email: jdoe@gmail.com
    - !ruby/object:Person 
      name: Jane Doe
      sname: jdoe
      email: jane@hotmail.com
    

    现在,您可以将yaml文件加载到Person对象数组中,然后操作该数组:

    FILENAME = 'data.yaml'
    
    class Person 
     attr_accessor :name, :sname, :email
    end
    
    require "yaml"
    # Will return an array of Person objects.
    data = YAML::load(File.open(FILENAME))
    
    # Will print out the first object in the array's name. #=> John Doe
    puts data.first.name
    
        2
  •  1
  •   Gishu    14 年前

    你只是说 require yaml 在文件的顶部。

    对象获得 to_yaml 方法。加载yaml文件很容易……请参阅此处的文档。 http://yaml4r.sourceforge.net/doc/