過程中,我有這樣的上傳類條件版本/與Carrierwave
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
process :resize_to_limit => [300, 300]
version :thumb do
process :resize_to_limit => [50, 50]
end
...
這將原始文件處理到300×300,並保存拇指版本。
我想只能根據模型上的布爾值創建小/拇指版本?
所以我做了這個
if :icon_only?
process :resize_to_limit => [50, 50]
else
process :resize_to_limit => [300, 300]
end
protected
def icon_only? picture
model.icon_only?
end
但它總是在50x50的處理結束了。即使我不喜歡這個
def icon_only? picture
false
end
我會得到我的語法了所有錯誤的:但我也試着問
if icon_only?
哪位告訴我,有沒有方法名稱,比如that.Im丟失。 ..
我這部分工作 過程:resize_to_limit => [50,50],:如果=>:icon_only? process:resize_to_limit => [300,300],:if =>!:icon_only? 但它總是會創建拇指版本,甚至是除非聲明 version:thumb,:unless =>:icon_only? 版本:thumb do process:resize_to_limit => [50,50] end – Jepzen 2012-08-03 07:59:48
我不認爲':if =>!:icon_only?'會工作。要麼定義另一個函數':not_icon_only?'或使用proc:'process:resize_to_limit => [300,300],:if => Proc.new {!icon_only? }'。你也確定你的'icon_only?'方法實際上工作嗎?它需要一個參數'picture',但是你可以在'model'上調用'icon_only?'。 – 2012-08-03 08:43:24
好吧,它看起來像一團糟,所以我最終爲我的圖標製作了另一個上傳類。我的icon_only?方法(在模型上)也沒有采用新分配的值,它只是從表中默認值,所以即使我有邏輯工作,我不知道如何確定它應該只是一個圖標或不。感謝您的幫助。 – Jepzen 2012-08-03 09:36:48