我一直在使用Paperclip来上传和自动调整大小Rails应用程序中的照片,我很喜欢它。唯一的问题是,每隔几个月我的疯狂经理都会决定要以新的尺寸显示照片。因此,我在我的Photo模型中添加了一个新的样式,对于新照片来说一切都很好,但现有的照片现在成为了一个问题。现在,我需要一种编程方式来调整现有照片的大小,也许有一些Paperclip技巧可以做到这一点?如果不必写RMagick并编写脚本,我真的不想要。
我一直在使用Paperclip来上传和自动调整大小Rails应用程序中的照片,我很喜欢它。唯一的问题是,每隔几个月我的疯狂经理都会决定要以新的尺寸显示照片。因此,我在我的Photo模型中添加了一个新的样式,对于新照片来说一切都很好,但现有的照片现在成为了一个问题。现在,我需要一种编程方式来调整现有照片的大小,也许有一些Paperclip技巧可以做到这一点?如果不必写RMagick并编写脚本,我真的不想要。
您想要使用Paperclip::Attachment的reprocess!
方法。请参见文档。
class User < ActiveRecord::Base
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end
# Console...
>> User.find_each { |u| u.avatar.reprocess! }
此外,根据reprocess!
方法之前的评论,有一个paperclip:refresh Rake任务,可能更容易实现。
rake paperclip:refresh:missing_styles
Ref: https://github.com/thoughtbot/paperclip#post-processing
rake paperclip:refresh:missing_styles CLASS=YourModelName
,或者对所有模型执行相同的操作。请注意,这将刷新缺失的图片样式。 - Arcolyerake paperclip:refresh:missing_styles CLASS=YourModelName RAILS_ENV=production
- Pramod Solanky
rake paperclip:refresh:YOUR_STYLE_HERE CLASS=User
- HengjieGallery.pictures.file.reprocess!
。 - Joshua Pinter