Отображение переменной YAML с EBR для отображения на веб-сайте - PullRequest
0 голосов
/ 17 января 2019

Я работаю над проектом, в котором данные хранятся в файле YAML с разными переменными, и они отображаются на веб-странице с использованием ERB. Кажется, я не могу отобразить содержимое переменной «des», но я знаю, что выражение класса pic_caption отображается на веб-сайте, когда я проверяю.

Мне удалось получить две разные переменные YAML (статистика), отображаемые с помощью ERB, как показано здесь:

YAML

impact:
  stats:
     - title: Number of Research Groups committed
       number: 3
     - title: Number of team members
       number: 22

ERB

<% if project.impact.key? 'stats' %>
        <% if project.impact.stats%>
          <% project.impact.stats.each do |s| %>
            <article class="impact__stat">
              <span class="impact__stat__title"><%= s.title %></span>
              <span class="impact__stat__number"><%= s.number %></span>
            </article>
          <% end %>
        <% end %>
      <% end %>

На сайте заголовки и номера отображаются в виде текста, что является желаемым результатом.

Это код, над которым я работаю:

YAML

photos:
  - url: project-photos/bus-1.jpg
  - des: "hi"
  - url: project-photos/bus-2.jpg
  - des: "o"

ERB

      <% if project.photos %>
        <% project.photos.each do |i| %>
          <figure>
            <%= image_tag i.url %>
          </figure>
          <span class="pic_caption"><%= i.des %></span>
        <% end %>
      <!-- </div> -->
      <% end %>

Я хочу, чтобы переменная des отображалась на веб-сайте, но при попытке выполнить этот код ERB ничего не появляется

1 Ответ

0 голосов
/ 17 января 2019

Ваш YAML - это не то, что вы думаете:

photos:
  - url: project-photos/bus-1.jpg
  - des: "hi"
  - url: project-photos/bus-2.jpg
  - des: "o"

Значение photos здесь представляет собой последовательность отображений. Первое отображение имеет ключ url со значением; второе отображение имеет ключ des со значением и т. д.

Однако код, который вы показываете, предполагает, что у каждого элемента в списке есть клавиши url и a des. Чтобы это работало, вам нужно поместить url и des в одно и то же отображение, например так:

photos:
  - url: project-photos/bus-1.jpg
    des: "hi"
  - url: project-photos/bus-2.jpg
    des: "o"

Обратите внимание на пропавшее -. - начинает новую запись в списке.

...