Rails 3 渲染二进制内容

10

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

请检查下面的代码,这是我正在执行的代码。Icon 是 material 表中的图像列名称。

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

非常感谢任何帮助。

1个回答

27

你需要在你的控制器中添加以下这些操作(从这里借鉴):

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

然后在您的image_tag中调用该操作的路径。您需要确保:type字段具有正确的MIME类型,并添加路由等。


2
您,先生,值得拥有饼干! - Niels Abildgaard
1
节省了我很多时间,对于 PostgreSQL 来说,如果你的列是 bytea,则可以使用 ActiveRecord::Base.connection.unescape_bytea(file_data)。 - Abs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接