Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在ruby/rails中使用YAML?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何在ruby/rails中使用YAML?

Ruby on rails 如何在ruby/rails中使用YAML?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个帐户列表,我想保存为YAML文件并将其加载到ruby中。大概是这样的: --- - !ruby/object:Person name: John Doe sname: jdoe email: jdoe@gmail.com - !ruby/object:Person name: Jane Doe sname: jdoe email: jane@hotmail.com 然后,我想获得名为“John Doe”的人的电子邮件地址(例如) 我该怎么做?您只需在文件顶

我有一个帐户列表,我想保存为YAML文件并将其加载到ruby中。大概是这样的:

--- 
- !ruby/object:Person 
  name: John Doe
  sname: jdoe
  email: jdoe@gmail.com
- !ruby/object:Person 
  name: Jane Doe
  sname: jdoe
  email: jane@hotmail.com
然后,我想获得名为“John Doe”的人的电子邮件地址(例如)


我该怎么做?

您只需在文件顶部说
需要yaml

执行此操作时,对象将获得一个
to_yaml
方法。加载yaml文件很容易。。请参阅此处的文档。

在这里,您将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