循环遍历 .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 %>