12

我试图获取“app/assets/images/slide”文件夹中的所有图像并将它们与标签一起放置(按顺序)。所以,它看起来像这样:

<img src="1.jpg" >
<img src="2.jpg" >
<img src="3.jpg" >

我怎样才能做到这一点?(我使用 Rails 3.2.9)

这是我尝试过的代码(感谢 Khaled)。但它会输出所有图像路径的纯文本列表。我需要显示图像:

@images = Dir.glob("app/assets/images/slide/*.jpg")

@images.each do |image|
    image_tag image.gsub("app/assets/images/", "")
end
4

5 回答 5

25

在您的控制器操作中,获取所有图像路径。

@images = Dir.glob("app/assets/images/slide/*.jpg")

然后在你看来(假设是haml)

- @images.each do |image|
   = image_tag "slide/#{image.split('/').last}"

假设 erb

 <% @images.each do |image| %>
   <%= image_tag "slide/#{image.split('/').last}" %>
 <% end %>
于 2012-12-29T11:23:49.063 回答
4

为确保运行,您可以使用:

@images = Dir.glob("#{Rails.root}/app/assets/images/camisas/*.jpg")
于 2014-07-11T23:01:16.873 回答
1

为我工作并显示图像:

Dir.glob('app/assets/images/slide/*').map do |path| 
  image_tag "slide/#{ File.basename(path) }"
end.reduce(&:+)

您想摆脱 File#basename 的完整路径,以便它与预编译资产 afaik 一起使用。您也不需要指定 .jpg,因为它是一个图像文件夹,并且可以有 .png。

于 2012-12-29T11:35:25.307 回答
0
files = Dir.glob('app/assets/images/slide/*')
files.each do |file|
  puts file
end
于 2012-12-29T11:23:09.300 回答
0

从文档中,image_tag返回源的 html 图像标记。它不能一次显示所有图像。您应该制作一个自定义助手来阅读和浏览您的目录。

于 2012-12-29T11:23:47.493 回答