尝试在rails中构建一个帮助器,为视图返回一个image_tags数组。
def thumbnails
arry = [
image_tag('image1.png')
image_tag('image2.png')
image_tag('image3.png')
]
return arry[0]
end
我可以返回单个图像,就像上面的例子一样,但我不确定如何将它们全部返回...我尝试迭代数组的任何操作都会导致视图呈现图像的HTML代码而不是图像本身。
一如既往的帮助。
答案 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