循环遍历.erb文件中的嵌套yaml数据

时间:2018-03-26 05:02:47

标签: yaml frontend erb middleman

我不太熟悉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

1 个答案:

答案 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 %>