我浏览了YAML for ruby documentation并找不到答案。
我有几个员工的名单。每个人都有姓名,电话和电子邮件:
Employees:
Name | Phone | Email
john 111 a@b.com
joe 123 b@a.org
joan 321 c@a.net
如何在YAML中编写上述信息以结束以下ruby输出?
employees = [ {:name => 'john', :phone => '111', :email => 'a@b.com'}, {:name => 'joe', :phone => '123', :email => 'b@a.org'}, {:name => 'joan', :phone => '321', :email => 'c@a.net'} ]
这就是我解析YAML文件的方式:
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")
谢谢!
答案 0 :(得分:2)
- name: john
phone: 111
email: a@b.com
- name: joe
phone: 123
email: b@a.org
- name: joan
phone: 321
email: c@a.net
输出是字符串键,而不是符号键,但如果真的有必要,您可以自己进行转换。
答案 1 :(得分:2)
请注意,Ruby 1.8.6附带的标准yaml是 NOT UTF / Unicode安全。
如果您要进行任何非ASCII测试,请使用Ruby 1.9 yaml或Ya2YAML gem。
此外,查看yaml输入应该是什么的最简单方法是创建(在Ruby irb中)数据结构的示例。然后使用.to_yaml对象类方法将其转换为yaml文本。 例如
require 'yaml'
# create your structure
a = [{'name' => "Larry K", 'age' => 24,
'job' => {'fulltime' => true, 'name' => 'engineer'}}]
a.to_yaml
=> "--- \n- name: Larry K\n job: \n name: engineer\n fulltime: true\n age: 24\n"
# then substitute line breaks for the \n:
---
- name: Larry K
job:
name: engineer
fulltime: true
age: 24