Tengo un problema que hubiese sido muy facil de resolver cuando estaba
creando los modelos (trivial) y que ahora que me doy cuenta no se si es tan
facil.

Paso a explicar brevemente el escenario:

Tengo 2 modelos que para fines de practicidad ahora escribiendo voy a llamar
"A" y "B" . Resulta que ambos modelos tienen la capacidad de tener un
adjunto que trato como un atributo mas como cualquier otro usando paperclip.


Funcionalmente andan fantástico y seguramente para el usuario va a seguir
así por mucho tiempo pero acabo de darme cuenta de algo que eventualmente me
va a traer problemas de no solucionarlo pronto. El problema es que el
atributo se llama "attachment" en ambos modelos A y B se llaman de la misma
manera. Hasta ahí perfecto, cada atributo me usa 3 columnas dentro de la BD
(content_type, url, size) pero cada uno en la tabla del modelo respectivo.
El problema ocurre en el almacenamiento porque resulta que paperclip por
defecto guarda los adjuntos en *
/public/system/"nombre_del_atributo"/"id_del_modelo_al_cual_pertenece_el_atributo"/original/"nombre_original_del_archivo"

*por tanto se me estan guardando en la misma carpeta los archivos que
corresponden a A y a B y todavia no ha saltado el problema porque:

- el modelo A tiene pocos objetos en la BD (menos de 50) y el modelo B tiene
como 1500 al dia de hoy
- el primer objeto del modelo B al cual decidieron ponerle un adjunto fue el
numero 200 aprox (id=200)
- en los 2 modelos el unico momento en el cual se puede agregar el adjunto
es durante la creación del mismo (no la edición)

pero me pregunto por ejemplo:

Que va a pasar el dia que se me cree la instancia del modelo A con id=200 y
dicha instancia tenga un adjunto???? Calculo que paperclip va a ir a guardar
dicho archivo a public/system/attachment/200/original/nombre_del_archivo

teoricamente debería poder guardarlo, pero después como accederia cada
modelo para saber que archivo le corresponde? supongamos que tiene una
lógica para ver el nombre  no solo el path, en dicho caso...que pasa si los
2 archivos se llaman igual??

Estuve leyendo la documentación y no encuentro como parametrizar el lugar
donde se guardan dentro del filesystem para así hacer el fix manualmente
moviendo los archivos y dandole una logica para q se guarden separado.

No he leido el codigo de paperclip por dentro todavia, y si alguien ya tiene
la respuesta a mi duda me va a ahorrar algunas horitas.

OBVIAMENTE todo hubiese sido mas facil si hubiese llamado a los atributos
por ejemplo a_attachment en el modelo A y b_attachment en el B , pero ya es
tarde. En el momento me pareció redundante nombrarlos así (no nombraria
tampoco a_name en A y b_name en B; simplemente nombraria name en ambos
modelos).......

bueno.......en fin....quizás alguno/a de ustedes ya resolvió dicha duda y me
puede ayudar

Saludos
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a