Я не очень хорошо знаком с синтаксисом 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
name1 desc1 имя2 desc2 имя3 desc3
Плитка2
name1 desc1 имя2 desc2 имя3 desc3
Подобно Как получить файлы YAML для рендеринга в посреднике с помощью 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 %>