Html 在网站上显示带有EBR的YAML变量

Html 在网站上显示带有EBR的YAML变量,html,yaml,erb,Html,Yaml,Erb,我正在从事一个项目,其中数据存储在带有不同变量的YAML文件中,并使用ERB显示在网页上。我似乎无法显示“des”变量内容,但我知道当我检查时,picu caption class语句正在网站上显示 我已经设法使用ERB显示了两个不同的YAML变量(stats),如下所示: 亚马尔 雇员再培训局 雇员再培训局 我希望des变量显示在网站上,但当我尝试执行ERB代码时,没有显示任何内容您的YAML不是您所认为的: photos: - url: project-photos/bus-1.jp

我正在从事一个项目,其中数据存储在带有不同变量的YAML文件中,并使用ERB显示在网页上。我似乎无法显示“des”变量内容,但我知道当我检查时,picu caption class语句正在网站上显示

我已经设法使用ERB显示了两个不同的YAML变量(stats),如下所示:

亚马尔

雇员再培训局

雇员再培训局



我希望des变量显示在网站上,但当我尝试执行ERB代码时,没有显示任何内容

您的YAML不是您所认为的:

photos:
  - url: project-photos/bus-1.jpg
  - des: "hi"
  - url: project-photos/bus-2.jpg
  - des: "o"
photos
的值是一系列映射。第一个映射有一个带有值的键
url
;第二个映射有一个带有值的键
des
,依此类推

但是,您显示的代码假定列表中的每个项目实际上都有一个
url
和一个
des
键。为此,您需要将
url
des
放在相同的映射中,如下所示:

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

请注意缺少的
-
-
启动一个新的列表条目。

请注意,没有YAML变量。在中使用单词变量的唯一时间是在示例文档中。因此,你肯定是混淆了概念,这很可能是无法解决问题的原因。“des”是由单个键值对组成的映射中的一个键,它是四项序列中的第二项,其本身就是键“photos”的值。这是这个YAML文档的根级别映射的单个键值对。
photos:
  - url: project-photos/bus-1.jpg
  - des: "hi"
  - url: project-photos/bus-2.jpg
  - des: "o"
      <% if project.photos %>
        <% project.photos.each do |i| %>
          <figure>
            <%= image_tag i.url %>
          </figure>
          <span class="pic_caption"><%= i.des %></span>
        <% end %>
      <!-- </div> -->
      <% end %>
photos:
  - url: project-photos/bus-1.jpg
  - des: "hi"
  - url: project-photos/bus-2.jpg
  - des: "o"
photos:
  - url: project-photos/bus-1.jpg
    des: "hi"
  - url: project-photos/bus-2.jpg
    des: "o"