Usando Paperclip, quiero agarrar una imagen desde una URL como esta:Paperclip: Asignar una imagen mediante programación y establecer su nombre
require 'open-uri'
user.photo = open(url)
El problema es que luego termino con un nombre de fichero como 'abierto uri20110915-4852-1o7k5uw '. ¿Hay alguna manera de que pueda cambiar el nombre del archivo en user.photo?
Como un giro adicional, Paperclip está almacenando mis archivos en S3, por lo que sería aún mejor si pudiera establecer el nombre de archivo que quiero en la asignación inicial, para que las imágenes se carguen en la tecla S3 derecha. Algo como esto:
user.photo = open(url), :filename => URI.parse(url).path
Y lo hago después de asignar 'open (url)' a la foto? Intenté esto con un usuario existente cuya foto ya está en S3. Ahora 'u.photo_file_name' devuelve el nuevo nombre, pero' u.photo (: original) 'todavía tiene la antigua url S3, así como' u.photo.path'. Y el archivo en S3 no se movió. –
Si la imagen existe, es posible que deba llamar a "photo.reprocess!" para que Paperclip actualice su back-end de almacenamiento (S3). De lo contrario, lo anterior funciona antes de su primer guardado y debe guardarlo correctamente en S3 cuando finalmente se guarde –
Tenga en cuenta que a veces el clip cambia el nombre del archivo para reemplazar caracteres, por lo que cualquier nombre de archivo debe coincidir con esas reglas; de lo contrario, el clip puede perderlo . – James