Resize existing images to new style in paperclip & RMagick

Ruby on-RailsRubyImagemagickPaperclipRmagick

Ruby on-Rails Problem Overview


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.

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

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 - Ruby on-Rails

try this rake task provided by paperclip

rake paperclip:refresh:missing_styles

Ref: https://github.com/thoughtbot/paperclip#post-processing

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiontybro0103View Question on Stackoverflow
Solution 1 - Ruby on-RailsRobert SpeicherView Answer on Stackoverflow
Solution 2 - Ruby on-RailsNaveedView Answer on Stackoverflow