Añadir imagen

Hola a todos.

Estoy intentando añadir imagenes en las recetas de ese manual que hay
por internet de RoR para hacer un recetario. Estoy haciendo diferentes
pruebas sobre el recetario de cosas que voy a necesitar para un proyecto
que quiero hacer en RoR, asi me voy familiarizando con todo.

Creo que ya he conseguido añadir una imagen en la base de datos para
cada receta, pero tengo varias dudas. He creador en la tabla recetas un
campo blob para almacenar la imagen. Es esta la forma mas apropiada de
hacerlo? En el caso de necesitar almacenar mas de una imagen para cada
receta, como me aconsejariais que lo hiciese?

A parte de esto, creo que las imagenes estan en la base de datos, pero
lo que no consigo, seguramente por mi ignorancia sobre rails, es mostrar
la imagen cuando muestro las recetas. He añadido el siguiente codigo en
la vista list.rhtml de las recetas, pero lo que consigo es que me
muestre el nombre del archivo y la extension, no la imagen:

<%= link_to receta.imagen, :action => “list”, :id => receta.id %>

Espero vuestra ayuda, ya que me llevo rompiendo los cuernos con esto
demasiao tiempo, y lo que encuentro por internet, no me soluciona nada.
Muchas gracias de antemano a todos.

Ricardo A…

Hola Ricardo pues se supone que el debate esta entre 2 formas de
hacerlo,
1.- almacenar la imagen en el disco tal cual, y poner la direccion de la
imagen en la base de datos
2.- como tu dices un campo blob, image o similar dependiendo del dbms y
guardar la imagen ahi

yo en lo personal prefiero la opcion 1, hice algunas pruebas con mysql y
sqlserver2000 y no me gusto
la opcion 2, sobre todo cuando empiezan a ser archivos mas grandes, se
supone que si son archivos pequeños
como imagenes y son muchos pero muchos puede ser mucho mejor que
tratarlos
con la forma 1 pero ya
es cuestion de ponerse a ver mas detalladamente.

si te quedas con la opcion 1 solo seria jalar la url y poner
o con algun helper, pero la verdad que
aun
no me acostumbro mucho a los helpers

si sigues con la opcion 2 hay varias cosas a considerar
1.- separar la imagen, es decir ( el campo blob) de la tabla que
contiene
los demas datos, esto porque si lo dejas en la misma
el desempeño de las consultas hacia las recetas por ejemplo puede
verse
drasticamente afectado, por eso es mejor
separarlo y solo jalar esa imagen de la receta seleccionada.
2.- configurar el dbms pues algunos vienen limitados en los datos que
pueden
recibir y ese tipo de cosas, para que puedas
obtener imagenes grandes tambien.
habia mas puntos pero de momento no recuerdo pero te recomendaria un
esquema
algo asi

receta
Nombre receta, demas datos

imagen_receta
Receta_id, Imagen (Blob)

y en rubi tendrias
receta << ActiveRecord :: Base
has_many :imagen_recetas

imagen_receta << ActiveRecord ::Base
Belongs_to :receta

asi solo jalas la imagen de la receta especifica y tambien queda el
esquema
de tal forma que la receta puede tener muchas imagenes
cuando lo estes usando seria

receta = Receta.find_by_nombre(‘Mole poblano’)
receta.imagen_recetas.each do |imagen|
#aqui hacemos lo que queramos con cada imagen
end

para mostrarla mmm la verdad que ni idea como, quizas crear un
controlador
de imagen donde le pases de parametro el id de la receta
y el de la imagen y te devuelva la imagen, asi poniendo la url

y en ese controlador jalarias la imagen
imagen =
imagen_receta.find_by_id_and_receta_id(params[:id],params[:id_imagen])
devolversela al navegador, pero la verdad que ni idea como se haga, lo
hacia
yo en java pero
en ruby todavia no se como quizas un puts imagen xD

suerte espero que te sirva de algo, ya que yo todavia soy novaton en
ruby
llevo cerca de 2 meses nada mas bueno
cualquier duda ahi mandalo a la lista

2007/12/7, Ricardo A. [email protected]:

Si quieres asociar varias fotos te aconsejo el plugin attachment_fu.
Te permite guardar los archivos en disco, base de datos o amazon S3.
Lo más sencillo es guardar en disco. Busca tutoriales en google.

2007/12/7, Ricardo A. [email protected]:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs