Ruby - 遍历目录中的每个文件并添加到页面

时间:2015-04-08 16:16:22

标签: html ruby

我想循环遍历.png图标的目录并将它们添加到独立页面上。我还希望在每个文件下公开.png的文件名。

简而言之,这应该成为一个自动功能,可以显示我目前在开发环境中使用的所有图标,因此我可以将此独立页面用作图标目录。

非常对Ruby很新,但我的问题首先引出了我这篇文章,但还远远不够: Iterate through every file in one directory

我的(基本内联HTML),到目前为止尝试:

<ul>

    <% Dir.glob('/assets/css/img/png/*.png') do |icon| %>

        <li> <%= "#{icon}" %> </li>

    <% end %>

</ul>

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我不是专家,所以任何改进都将受到赞赏。我只能通过提供目录的绝对路径来获取Ruby Dir.glob()进行迭代。我使用的是Rails 4.0.8。这对我有用:

<ul>
  <% Dir.glob("#{Rails.root}/app/assets/images/*.png") do |icon| %>
      <% icon_base = File.basename(icon) %>
      <li><%= link_to icon_base, image_url(icon_base) %></li>
  <% end %>
</ul>

这将生成/assets/images中所有PNG图像的超链接列表。

答案 1 :(得分:0)

您提供了Dir.glob的绝对路径,因此它不会与您的Rails项目目录相关。

尝试在Rails根路径前面添加一个有效的绝对路径。

Dir.glob(Rails.root +“/ assets ... etc