Rails helper - 如何将一组图像返回到视图

时间:2011-07-27 20:21:55

标签: ruby-on-rails

尝试在rails中构建一个帮助器,为视图返回一个image_tags数组。

def thumbnails
 arry = [
 image_tag('image1.png')
 image_tag('image2.png')
 image_tag('image3.png')
 ]
 return arry[0]
end

我可以返回单个图像,就像上面的例子一样,但我不确定如何将它们全部返回...我尝试迭代数组的任何操作都会导致视图呈现图像的HTML代码而不是图像本身。

一如既往的帮助。

2 个答案:

答案 0 :(得分:5)

如果我正确理解了这个问题,如果你想将所有这些问题加在一起,你可以这样做:

def thumbnails
  raw [
       image_tag('image1.png'),
       image_tag('image2.png'),
       image_tag('image3.png')
      ].join()
end

这将产生如下字符串:

<img src='/images/image1.png' /><img src='/images/image12.png' /><img src='/images/image3.png' />

答案 1 :(得分:0)

我会做一个部分_thumbnail并传递一个包含AR对象数组或文件名数组的对象。在部分:

<%= image_tag(thumbnail)  #or image_tag(thumbnail.file_name) if AR object %>

在引用视图中:

<%= render(:partial => "thumbnail", :collection => @thumbnails) %>

向部分提供:集合使Rails自动为每个对象重复它 - 使用与每个实例的部分名称匹配的对象名称。从引用视图传递的@thumbnails是在控制器中设置的数组:

@thumbnails = ["image1.png","image2.png","image3.png","image4.png"]

@thumbnails = Thumbnails.find(:all)

HTH