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

标签 ruby-on-rails ruby

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

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

然后我想获取姓名为“John Doe”的人的电子邮件地址(例如)。

我该怎么做?

最佳答案

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

关于ruby-on-rails - 如何在 ruby​​/rails 中使用 YAML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002092/

相关文章:

ruby-on-rails - 亚马逊 ElasticBeanstalk : configure environment variable with newlines

css - Rails 4 应用程序中带有图像标签的全宽响应图像

mysql - 在 Rails Marshal 中,转储的数据未完整保存在 mysql 中

ruby - Ruby 中的无序耦合

ruby - 语法错误,意外 ',',期望 ')'

ruby-on-rails - 初学者 : rails syntax

ruby-on-rails - 即使验证失败,Rails 也会强制对象保存

sql - RSpec:伪造的 SQL 错误?

ruby - 如何标记用于 VCR 盒式磁带的 cucumber 场景大纲示例?

ruby - 使用 Ruby 中的简单包装类提高干燥度