循环遍历 .erb 文件中的嵌套 yaml 数据
Looping through nested yaml data in .erb file
我对 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 %>
期望的结果是:
方块 1
姓名1
描述1
名字2
描述2
名字3
desc3
方块 2
姓名1
描述1
名字2
描述2
名字3
desc3
类似于...
以下内容应该可以帮助您解决问题,这主要是数据结构的问题 - 您的循环在正确的轨道上:
将 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 %>
我对 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 %>
期望的结果是:
方块 1
姓名1 描述1 名字2 描述2 名字3 desc3
方块 2
姓名1 描述1 名字2 描述2 名字3 desc3
类似于
以下内容应该可以帮助您解决问题,这主要是数据结构的问题 - 您的循环在正确的轨道上:
将 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 %>