2010-06-04 23 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