2009-10-15 4 views
18

He añadido 2000 imágenes a mi tabla de imágenes y estoy usando el plugin Paperclip para crear pulgares. Me pregunto si hay una manera de ir a través de la base de datos y agregar otro elemento :styles.¿Cómo puedo cambiar el tamaño de una imagen de clip después de que se ha agregado a la base de datos?

Por ejemplo, cuando he añadido las imágenes que tenía la siguiente en mi modelo:

has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" } 

Sin embargo, ahora quiero añadir un atributo :large y lo han aplicado a cada imagen que ya está en mi mesa. Algo como:

has_attached_file :image, :styles => { :large => "800x800>", :medium => "300x300>", :thumb => "100x100>" } 

¿Esto es posible? ¿O tendría que volver a agregar todas las 2000 fotos?

Respuesta

42

Si Paperclip se instala como un plugin, usted puede hacer esto:

rake paperclip:refresh:thumbnails CLASS=Screenshot 

donde pantalla es el nombre de la clase con el archivo adjunto.

Si se instala como una joya, hacer esto dentro de la escritura/consola:

Screenshot.all.each {|s| s.image.reprocess! } 

sustitución de captura de pantalla con el nombre apropiado de clase

+0

El segundo método es realmente útil, fallé el primero con excepción de método indefinido. – albb

+2

si tiene un montón de capturas de pantalla, debe usar #find_each. Screenshot.find_each {| s | en.image.reprocess! } – Schneems

+0

gran ahorro de tiempo, ¡gracias! –

6
rake paperclip:refresh:thumbnails 
+2

A mí más específica: Rastrillo de clip: refresco: miniaturas CLASE = MiClase – pixelearth

Cuestiones relacionadas