我试图拍摄'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
答案 0 :(得分:23)
在您的控制器操作中,获取所有图像路径。
@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 %>
答案 1 :(得分:2)
为确保操作,您可以使用:
@images = Dir.glob("#{Rails.root}/app/assets/images/camisas/*.jpg")
答案 2 :(得分:1)
适合我并显示图片:
Dir.glob('app/assets/images/slide/*').map do |path|
image_tag "slide/#{ File.basename(path) }"
end.reduce(&:+)
您希望摆脱File#basename的完整路径,以便它可以与预编译资产一起使用。您也不需要指定.jpg,因为它是一个images文件夹,并且可能有.png。
答案 3 :(得分:0)
files = Dir.glob('app/assets/images/slide/*')
files.each do |file|
puts file
end
答案 4 :(得分:0)
从文档中,image_tag
返回源的html图像标记。它无法一次显示所有图像。您应该创建一个自定义帮助程序来读取和遍历您的目录。