Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I resize a Paperclip image after it has been added to the database?

I've added 2000 pictures to my images table and I'm using the Paperclip plugin to create thumbs. I'm wondering if there's a way to go through the database and add another :styles element.

For example, when I added the images I had the following in my model:

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

However, now I want to add a :large attribute and have it applied to every image that's already in my table. Something like:

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

Is this possible? Or would I have to re-add all 2000 pictures?

like image 291
mculp Avatar asked Oct 15 '09 15:10

mculp


2 Answers

If Paperclip is installed as a plugin, you can do this:

rake paperclip:refresh:thumbnails CLASS=Screenshot

where Screenshot is the name of the class with the attachment.

If it's installed as a gem, do this inside script/console:

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

replacing Screenshot with the appropriate class name

like image 72
Jonathon Horsman Avatar answered Nov 15 '22 22:11

Jonathon Horsman


rake paperclip:refresh:thumbnails
like image 21
mculp Avatar answered Nov 16 '22 00:11

mculp