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
