1

我试图找出调用文件/data夹中一系列文件的正确语法。

例如,我在 中有几个文件/data,每个文件的格式为article1.yml,article2.yml等。我如何在模板中遍历它们?我认为最直接的方法是调用文件名中的数字增量,如下所示:

<% data.article-[1,2,3].each do |article| %> <p><<%= article.title %></p> <% end %>

我见过其他人提出类似的问题,但没有找到一个很好的例子来查看循环遍历所有可用文件,或者像我的示例中那样循环遍历数字的增量。

4

2 回答 2

1

@Anthonytkim 他们在数据的文件夹中吗?即/data/article/article1.yml?如果是这样,简单地抓住它们,试试这个:

<% data.article.each do |id, article| %>
... do stuff ...
<% end %>

要只抓取一些项目,请尝试使用 first() 语法:

<% data.article.first(7).each do |id, article| %>
... do stuff ...
<% end %>

如果你想从中间抓取一个范围,你可以结合 first() 和 drop()。例如,如果我想要项目 5、6 和 7:

<% data.article.first(7).drop(4).each do |id, article| %>
... do stuff ...
<% end %>

如果你想以相反的顺序输出它们,试试这个(你也可以结合 first() 和 drop() 语法):

<% data.article.reverse_each do |id, article| %>
... do stuff ...
<% end %>
于 2017-08-02T16:03:55.167 回答
0

使用 Middleman 4.3.2,我能够遍历数据文件夹中的多个文件,如下所示:

<% data.article.each do |article| %>
  <p><%= data.article.fetch(article[0]).title %></p>
<% end %>

在上面的代码中,article设置为某个数组,例如:['article_name', '#'],所以我能够抓取数组中的第一项来获取特定的文章数据。

于 2019-05-26T16:48:09.690 回答