2010-06-04 22 views
58

我一直在使用回形针在我的Rails应用程序中上传和自动调整照片大小,我喜欢它。唯一的问题是每隔一个月我的疯狂经理就决定他想要一个新的尺寸来显示照片。所以我在我的照片模型中添加了一个新的样式,并且对于新照片都很好,但是现有的照片现在是一个问题。现在我开始处理的照片不止一张,我需要一种编程方式来调整现有照片的大小。也许这种事情有一些回形针技巧?如果我不需要,我真的宁愿不必弄清RMagick并自己写一个脚本。在回形针和RMagick中将现有图像调整为新样式

+1

有趣的问题亲爱的+1! – 2014-11-18 14:52:32

回答

79

你想要Paperclip :: Attachment的reprocess!方法。见the docs

class User < ActiveRecord::Base 
    has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" } 
end 

# Console... 
>> User.find_each { |u| u.avatar.reprocess! } 

此外,根据reprocess!方法之前的评论,有一个回形针:刷新Rake任务,它可能会更容易。

+6

谢谢! 回形针:刷新耙子工作得很好 – tybro0103 2010-06-07 16:10:46

+0

保持该命令在我的最爱,谢谢:) – Richlewis 2012-12-01 10:24:12

+4

这里的文件重新生成您的回形针样式。 https://github.com/thoughtbot/paperclip/wiki/Thumbnail-Generation该命令应该是'rake paperclip:refresh:YOUR_STYLE_HERE CLASS = User' – Hengjie 2013-02-21 00:18:49

28

尝试回形针

rake paperclip:refresh:missing_styles 

参考文献提供了这个rake任务: https://github.com/thoughtbot/paperclip#post-processing

+5

...或者只为一个模型:'rake paperclip:refresh:missing_styles CLASS = YourModelName' – Arcolye 2013-10-31 03:33:05

+1

不要忘记设置rails任务的环境。 'rake paperclip:refresh:missing_styles CLASS = YourModelName RAILS_ENV = production' – 2016-01-05 14:56:10