Resize existing images to new style in paperclip & RMagick
Solution 1
You want the reprocess!
method of Paperclip::Attachment. See the docs.
class User < ActiveRecord::Base
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end
# Console...
>> User.find_each { |u| u.avatar.reprocess! }
Also, according to the comments before the reprocess!
method, there's a paperclip:refresh Rake task, which might be easier.
Solution 2
try this rake task provided by paperclip
rake paperclip:refresh:missing_styles
Ref: https://github.com/thoughtbot/paperclip#post-processing
tybro0103
Coffee junkie, computer nerd, fitness monster, and father of two cool dudes.
Updated on June 08, 2022Comments
-
tybro0103 almost 2 years
I've been using paperclip to upload and auto-resize photos in my Rails app, and I love it. Only problem is about every other month my crazy manager decides he wants a new size to display the photos in. So I add a new style in my Photo model and all is good for new photos, but the pre-existing photos are now a problem. Now that I'm starting to have more than a few photos to deal with I need a programmatic way to resize existing photos. Perhaps there is some paperclip trick for such a thing? I'd really rather not have to figure out RMagick and write a script myself if I don't have to.
-
Hengjie about 11 yearsHere's the documentation to regenerate your paperclip styles. github.com/thoughtbot/paperclip/wiki/Thumbnail-Generation The command should be
rake paperclip:refresh:YOUR_STYLE_HERE CLASS=User
-
Arcolye over 10 years...or do it for just one model:
rake paperclip:refresh:missing_styles CLASS=YourModelName
-
Joshua Pinter almost 9 yearsFYI, if you have a polymorphic model to handle all your Paperclip attachments, called
Picture
for example, you'll need to do something like:Gallery.pictures.file.reprocess!
. -
Pramod Solanky over 8 yearsDont forget to set the rails environment with the task.
rake paperclip:refresh:missing_styles CLASS=YourModelName RAILS_ENV=production
-
Kadarach almost 6 yearsThis worked for me, whereas the rake task failed (couldn't find the paperclip yml file). I inherited this app, and it doesn't appear to use the yml file.