¿Cómo le digo a Paperclip que no guarde el archivo original cuando se carga? ¿O mejor aún, para almacenar una versión escalada del archivo como original?¿Cómo le digo a paperclip que no guarde el archivo original?
Respuesta
Creo que simplemente puede definir un estilo para: original, para tener un clip reemplazar el original con ese tamaño.
:styles => { :original => '300x168>', :cropped_thumb => {:geometry => "115x70#", :jcrop => true}, ...}
Paperclip siempre guarda un original de manera predeterminada, pero "creo" que si lo elimina de su migración, no lo intentará y lo guardará.
Guardo un original escalado en mi modelo para que los usuarios puedan editar su imagen más tarde. Mi modelo es el siguiente:
:styles => { :cropped_thumb => {:geometry => "115x70#", :jcrop => true}, :resized_thumb => {:geometry => "115x70>"}, :deal => {:geometry => "64x56#"},
:cropped_large => {:geometry => "#{PHOTO_IMAGE_WIDTH}x#{PHOTO_IMAGE_HEIGHT}#", :jcrop => true},
:resized_large => {:geometry => "#{PHOTO_IMAGE_WIDTH}x#{PHOTO_IMAGE_HEIGHT}>"},
:orig => '300x168>', #this is the scaled original that I call later
:cropped_orig => {:geometry => '300x168#', :jcrop => true},
:resized_orig => {:geometry => '300x168>'} },
:processors => [:jcropper]
Gracias por su respuesta, Trip. – Jade
La solución de Cris G puede ser agradable en la mayoría de los casos simples, pero tiene sus limitaciones. considere que: estilo: proceso original de Paperclip, en primer lugar, todos los demás, por lo que después de esa actualización: la imagen original (mucho más pequeña ahora) será la fuente para el siguiente procesamiento. Por lo tanto, se ve obligado a mantener: estilo original como mejor resuelto. La situación empeora ya que necesita recortar imágenes con el procesador: esa es la situación en la que realmente necesita una calidad original real.)
por lo que recomiendo que un tanto cruda (que averiguar cómo conseguir cada adjuntos del modelo) solución:
after_save :reprocess_attach
private
def reprocess_attach
if self.<atch_name>.present? && Pathname.new(self.<atch_name>.path).exist?
self.<atch_name>.save
File.unlink(self.<atch_name>.path)
end
end
que no se preocupa por lo que el procesamiento estaba detrás del escenario. Simplemente mata el archivo original)
Tiene toda la razón, anulando la geometría de: impactos originales el procesamiento de todos los demás. Pero, ¿podría explicarme su solución para evitar que el original se cargue con más detalle? ¡Estoy confundido! ¡Gracias! – Sujimichi
@Sujimichi bien, después de guardar, el "reprocess_attach" comprueba si el archivo adjunto existe como archivo original. Si lo hace, se asegurará de que todos los archivos se vacíen en el sistema de archivos (guardar) y después de eliminar el archivo original. –
- 1. ¿Cómo le digo a Django que guarde mi base de datos de prueba?
- 2. ¿Cómo le digo a linkify que no subraye enlaces?
- 3. ¿Cómo le digo a playframework que use mi proxy corporativo?
- 4. ¿Cómo le digo a TortoiseHg que un archivo no es binario?
- 5. ¿Cómo le digo a Subversion que trate un archivo como un archivo binario?
- 6. ¿Cómo puedo hacer que carrierwave no guarde el archivo original después de procesar las versiones?
- 7. Rails y Paperclip ... no guarde la imagen original, solo los estilos?
- 8. Cómo le digo a la red troncal que el modelo no es nuevo
- 9. javamail: ¿Cómo le digo a gmail que no me firme en el chat?
- 10. ¿Por qué mi UITableView no se desplaza a menos que le digo que anime el desplazamiento?
- 11. ¿Cómo le digo a gcov que ignore las líneas de código C++ que no son hittables?
- 12. ¿Cómo le digo a DBD :: mysql dónde está mysql.sock?
- 13. Cómo le digo a Git que tiene movimientos/cambia el nombre incorrectos (falsos positivos)
- 14. ¿Cómo le digo a Rails cómo capitalizar correctamente un acrónimo?
- 15. ¿De dónde saca paperclip el nombre del archivo original?
- 16. ¿Cómo le digo a cmake que no cree una ventana de consola?
- 17. ¿Cómo le digo a ActiveRecord que no registre ningún carácter de control
- 18. ¿Cómo le digo a una etiqueta aparte qué lado seguir?
- 19. ¿Cómo le digo a CPAN.pm dónde obtener los módulos?
- 20. ¿Cómo le digo a MySQL Optimizer que use el índice en una tabla derivada?
- 21. ¿Cómo le digo a rsync que se ejecute solo si el directorio de destino existe?
- 22. ¿Cómo le digo a ReSharper que un atributo significa que se usa un método?
- 23. ¿Cómo le digo a DOMDocument-> load() qué codificación quiero que use?
- 24. ¿Cómo le digo a Zsh que escriba el historial actual del shell en mi archivo de historial?
- 25. ¿Cómo le digo a Git que ignore todo excepto un subdirectorio?
- 26. ¿Cómo le digo a cmake que quiero que mi proyecto vincule las bibliotecas estáticamente?
- 27. ¿Cómo le digo a Git que ignore un nombre de archivo específico solo en el nivel superior del repositorio?
- 28. ¿Cómo le digo a Eclipse que valide los archivos HTML como PHP?
- 29. Cómo le digo a Python que convierta números enteros en palabras
- 30. ¿Cómo le digo a Qt que siempre muestre un editor en QTableView?
Mira mi respuesta [aquí] (http://stackoverflow.com/questions/25467130/rails-4-and-paperclip-stop-the-original-style-file-upload-to -copy-it-from-an/25585186) – laertiades