Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 中间人循环浏览数据文件夹中的文件_Ruby_Middleman_Middleman 4 - Fatal编程技术网

Ruby 中间人循环浏览数据文件夹中的文件

Ruby 中间人循环浏览数据文件夹中的文件,ruby,middleman,middleman-4,Ruby,Middleman,Middleman 4,我试图找出调用/data文件夹中一系列文件的正确语法 例如,我在/data中有几个文件,每个文件的格式为article1.yml,article2.yml,等等。我如何在模板中循环使用它们?我认为最直接的方法是调用文件名中的数字增量,如下所示: @Anthonytkim是否在数据中的文件夹中?i、 e./数据/文章/条款1.yml?如果是这样,要简单地抓住它们,请尝试以下方法: <% data.article.each do |id, article| %> ... do stuf

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

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



@Anthonytkim是否在数据中的文件夹中?i、 e./数据/文章/条款1.yml?如果是这样,要简单地抓住它们,请尝试以下方法:

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

... 做些事情。。。
要仅获取几个项目,请尝试使用first()语法:


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

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

... 做些事情。。。
如果要以相反的顺序输出它们,请尝试以下方法(也可以与first()和drop()语法结合使用):


... 做些事情。。。

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

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


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

这不仅让我走上了正确的方向,而且还帮助我解决了另一个中间商项目中的一个问题,当时我正试图获取第一个项目(最近)博客文章。谢谢你的来信!!
<% data.article.reverse_each do |id, article| %>
... do stuff ...
<% end %>
<% data.article.each do |article| %>
  <p><%= data.article.fetch(article[0]).title %></p>
<% end %>