2011-06-01 9 views
9

Necesito presentar contenido binario (imágenes) en la página web. Estoy guardando imágenes en la base de datos con el tipo de datos binario. Ahora necesito iterar las imágenes disponibles de la base de datos y renderizarlas en la página web.Rails 3 Renderización de contenido binario

Por favor, compruebe el siguiente código que estoy haciendo. El ícono es el nombre de la columna de la imagen en el material.

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

Cualquier ayuda sería muy apreciada ..

Respuesta

23

es necesario agregar una acción a su controlador a lo largo de estas líneas (cribbed from here):

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

a continuación, llamar a la trayectoria que la acción en su image_tag. Obviamente necesita asegurarse de que el campo :type tenga el tipo MIME correcto, agregue una ruta, etc.

+0

Gracias muffinista ... funciona bien ... – kals

+1

¡Usted, señor, merece las cookies! –

+0

Me ahorró mucho tiempo también para postgres si su columna es una bytea ActiveRecord :: Base.connection.unescape_bytea (file_data) – Abs