2009-10-15 6 views
18

Ho aggiunto 2000 immagini alla mia tabella immagini e sto utilizzando il plug-in Paperclip per creare i pollici. Mi chiedo se c'è un modo per passare attraverso il database e aggiungere un altro elemento :styles.Come posso ridimensionare un'immagine di Paperclip dopo che è stata aggiunta al database?

Per esempio, quando ho aggiunto le immagini ho avuto il seguente nel mio modello:

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

Tuttavia, ora voglio aggiungere un attributo :large e lo hanno applicato a ogni immagine che è già nel mio tavolo. Qualcosa di simile:

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

È possibile? O dovrei aggiungere nuovamente tutte le 2000 foto?

risposta

42

Se Paperclip è installato come un plug-in, si può fare questo:

rake paperclip:refresh:thumbnails CLASS=Screenshot 

dove Schermata è il nome della classe con l'allegato.

Se è installato come una gemma, fare questo all'interno di script/console:

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

sostituendo screenshot con il nome appropriato della classe

+0

Il secondo metodo è davvero utile, ho fallito il primo con l'eccezione metodo non definito. – albb

+2

se hai un sacco di screenshot dovresti usare #find_each. Screenshot.find_each {| s | s.image.reprocess! } – Schneems

+0

enorme risparmio di tempo - grazie !! –

6
rake paperclip:refresh:thumbnails 
+2

Per me più specifici: rake graffetta: aggiornamento: miniature CLASS = MyClass – pixelearth

Problemi correlati