解析和编写YAML

ere*_*ere 2 ruby yaml middleman

我有一个基本问题,我似乎无法理清.

我想在YAML文件中存储一小组Quote,然后使用Ruby Middlemanapp在网站中迭代它.我不确定这是我的YAML文件组成还是我试图通过它或两者进行迭代的方式.

YAML(quotes.yml)

---
quote: "This is a quote"
attribution: "Kate Something"
extras: "Braintree"
---
quote: "Blah blah"
attribution: "Donna Doe"
extras: "Essex"
---
quote: "Blah blah"
attribution: "Donna Doe"
extras: "Essex"
Run Code Online (Sandbox Code Playgroud)

ERB

<% data.quotes.each do |f| %>
  <%= f["quote"] %> #f.quote <%= f["attribution"] %> 
<% end %>
Run Code Online (Sandbox Code Playgroud)

如果我只是使用<%= f%>,如果一个接一个地获取所有项目而不管密钥,但是找不到迭代它们并指定我想要的密钥或字段的方法.

http://middlemanapp.com/advanced/local-data/

mat*_*att 5

在Yaml中,---在Yaml流中启动一个新文档,因此在您的quotes.yaml文档中有三个单独的文档而您只阅读第一个文档.

我认为你想要的是这样的:

- quote: "This is a quote"
  attribution: "Kate Something"
  extras: "Braintree"

- quote: "Blah blah"
  attribution: "Donna Doe"
  extras: "Essex"

- quote: "Blah blah"
  attribution: "Donna Doe"
  extras: "Essex"
Run Code Online (Sandbox Code Playgroud)

这是包含地图列表的单个Yaml文档.