Asociar muchas fotos a un producto... como preferis organizarlo?

Holas gente… me gustaría saber qué manera creeis mejor para organizar
una
aplicación en el que se asocien varios archivos subidos con
attachment_fu a
un modelo. Pensemos en el clásico catálogo de productos donde un
producto
has_many photos y una foto belongs_to un producto.

*** Primera solución ***

  • Generar scaffold de productos
  • Generar scaffold de fotos
  • El proceso de creación de un producto pasa primero por products/new
    para
    introducir sus datos “de texto” (nombre, precio…) pero no las fotos.
    Al
    crear el producto se redirige a su product/show, donde metemos un
    formulario
    de subida de fotos… al subir la foto se redirige de vuelta al show de
    producto, donde podemos volver a subir una siguiente foto, o eliminar
    una
    foto (enlaza con el destroy del controlador de fotos y redirige al show
    de
    producto).
  • O sea, separar la edición de datos del producto (new y edit) y por
    otro la
    subida y borrado de fotos desde el show de producto.

*** Segunda solución ***

  • Similar a la primera pero incluyendo un campo para una foto en el
    formulario de new y edit producto.
  • Modificar el controlador de productos para que si el new puede salvar
    el
    producto, cree la foto y la asocie. Similar con edit de producto
  • En este plan: http://tinyurl.com/2e7g3h

*** Tercera solución ***

¿Otras soluciones? ¿Cómo lo organizais vosotros, para que sea usable,
sencillo y testeable?

El 20/02/08, Jaime I. [email protected]
escribió:> ¿Otras soluciones? ¿Cómo lo organizais vosotros, para que sea usable,

sencillo y testeable?

Yo no te puedo dar mi experiencia en Rails… pero sí en otros
lenguajes y al final esto es más un patrón que una cosa del lenguaje.

Al respecto de indicarle al usuario que introduzca la foto nada
másempezar al crear el producto yo recomiendo que no. Recomiendo que la
pantalla de crear nuevo producto sea lo más sencilla posible con los
campos más mínimos que se pueda hacer.

Luego, cuando quiera, darle la opción de lo que podría ser un:
“ampliar perfil” al más puro estilo red social.

Hay que tener en cuenta que lo de la foto es un coñazo para el
usuario, y si va a insertar 30 productos y tiene que preparar la foto
para todos no creo que le sea operativo.

Creo que es mejor darle la opción de insertar los productos de una
tangada y que luego en otra sentada se ocupe de subir las fotos a
todo.

Claro está que habrá que tener pensado el poner una foto ‘por defecto’
cuando el producto no tenga foto.

Otra posibilidad entre medias es darle la opción de subir la foto en
la pantalla de alta pero que sea opcional.

También, el hecho de tener todo lo referente a la gestión de fotos en
una pantalla dedicada ayuda mucho a la hora de la programación y
testeo. Además para la
reutilización.
Nosotros, puede que no sea el mejor ejemplo de usabilidad pero, en el
proyecto Kroonos.com (http://www.kroonos.com) el módulo de gestionar
las fotos es el mismo para usuarios, grupos y anuncios.

La solución AJAX que has comentado no le he mirado, así que no
sé.
Ya nos dirás.

Suerte.

f.

Hola Fernando, yo suelo hacer así, como en la primera solución,
separando
por un lado la edición de datos del producto y por otro la subida de
fotos,
como en dos pasos. Creo que es lo más limpio, pero quería ver qué opinan
los
demás… Ya veo que por ahora somos dos de acuerdo en esto. :slight_smile:

Jaime

El día 20/02/08, Fernando G. [email protected] escribió:

Acabo de aprender una manera mejor de hacerlo, en el Advanced Rails
Recipes,
receta 19.

Te describe cómo poder subir la foto directamente en el formulario de
creación o modificación del modelo que la contiene, implementando un
método
.save_with_photo en el modelo producto, entre otras cosas.

Jaime

El día 21/02/08, Jean D. [email protected] escribió:

Prefiero la primera solución, aunque el o los usuarios inexpertos o
impacientes te van ha preguntar como se suben las fotos cuando empiecen
a
usar la aplicación.

El día 20/02/08, Jaime I. [email protected] escribió:

  • El proceso de creación de un producto pasa primero por products/new para


Saludos
Atte

Jean Marcel Droguett A.