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

ドキュメントからimage_tag、ソースのhtml画像タグを返します。すべての画像を一度に表示することはできません。ディレクトリを読んでウォークスルーするためのカスタムヘルパーを作成する必要があります。

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