2011-06-01 66 views
9

我需要在网页上呈现二进制内容(图像)。我用二进制数据类型将数据保存在数据库中。现在我需要从数据库中迭代可用图像并在网页上呈现。Rails 3渲染二进制内容

请检查我正在做的下面的代码。图标是材料中的图像列名称。

// iterating all materials 
<% @materials.each do |material| %> 
    // for each material 
    <span><%= image_tag(material.icon) %></span> 
<% end %> 

任何帮助将不胜感激..

回答

23

您需要的操作添加到沿着这些线路控制器(cribbed from here):

def image 
    @material = Material.find(params[:id]) 
    send_data @material.icon, :type => 'image/png',:disposition => 'inline' 
end 

然后调用路径,在行动您的image_tag。您显然需要确保:type字段具有正确的MIME类型,添加路由等。

+0

感谢muffinista ..它的工作很好.. – kals 2011-06-03 04:17:22

+1

您,先生,值得Cookie! – 2014-04-05 10:03:31

+0

如果你的列是一个bytea,那么为postgres节省了很多时间ActiveRecord :: Base.connection.unescape_bytea(file_data) – Abs 2015-02-04 00:10:13