我有这个上载器类
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
process :resize_to_limit => [300, 300]
version :thumb do
process :resize_to_limit => [50, 50]
end
...
它将原始文件处理为300x300,并保存一个缩略图版本。
我想仅基于模型上的 bool 值就能制作小型/缩略图版本吗?
所以我做到了
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?
告诉我没有这样的方法名称,我迷路了...
最佳答案
使用:if
条件,如下所示:
process :resize_to_limit => [50, 50], :if => :icon_only?
process :resize_to_limit => [300, 300], :if => ...
我实际上没有尝试过,但是已记录in the code,因此它应该可以工作。
关于ruby-on-rails-3 - Carrierwave的条件版本/过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11778464/