【发布时间】:2019-01-17 02:07:02
【问题描述】:
我正在从事一个项目,其中数据存储在具有不同变量的 YAML 文件中,并使用 ERB 显示在网页上。我似乎无法显示“des”变量内容,但我知道当我检查时网站上正在显示 pic_caption 类语句。
我已经设法使用 ERB 显示两个不同的 YAML 变量(统计数据),如下所示:
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 代码时没有显示任何内容
【问题讨论】:
-
请注意,没有 YAML 变量之类的东西。在YAML specification 中使用单词变量的唯一一次是在示例文档中。所以肯定是你混淆了概念,这很可能是无法解决问题的原因。 “des”是映射中的一个键,它由一个键值对组成,它是四个条目序列中的第二个条目,它本身就是键“photos”的值。这就是这个 YAML 文档的根级映射的单个键值对。