我不太熟悉YAML语法,似乎无法通过搜索找到解决方案。
我正在尝试遍历此数据文件:
- category1:
title: Title 1
sub:
name: name1
desc: desc1
sub:
name: name2
desc: desc2
sub:
name: name3
desc: desc3
- category2:
title: Title 2
sub:
name: name1
desc: desc1
sub:
name: name2
desc: desc2
sub:
name: name3
desc: desc3
这是我的erb循环:
<% data.filename.category.each do |filter| %>
<%= filter["title"] %>
<% filter["sub"].each do |sub| %>
<%= sub["name"] %>
<%= sub["desc"] %>
<% end %>
<% end %>
期望的结果是:
Tile1
NAME1 DESC1 NAME2 DESC2 NAME3 desc3
Tile2
NAME1 DESC1 NAME2 DESC2 NAME3 desc3
答案 0 :(得分:0)
与How to get YAML files to render in middleman with erb相似......
以下内容应该让你整理出来,这主要是数据结构的问题 - 你的循环是在正确的轨道上:
将filename.yml
文件的内容更改为:
items:
- title: "Title 1"
subs:
- name: "name1"
desc: "desc1"
- name: "name2"
desc: "desc2"
- name: "name3"
desc: "desc3"
- title: "Title 2"
subs:
- name: "name1"
desc: "desc1"
- name: "name2"
desc: "desc2"
- name: "name3"
desc: "desc3"
在您的模板文件中(假设您的数据文件位于/data/filename.yml):
<% data.filename.items.each do |item| %>
<h1><%= item.title %></h1>
<% item.subs.each do |sub| %>
<h2><%= sub.name %></h2>
<h3><%= sub.desc %></h3>
<% end %>
<% end %>