Carrierwave的条件版本/过程 [英] Conditional versions/process with Carrierwave
本文介绍了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
...
它将原始文件处理为300x300并保存一个拇指版本。
Which will process the original file to 300x300 and save a thumb version.
我希望能够仅基于模型上的布尔值来制作小型/缩略图版本?
I would like to be able to make a small/thumb version only based on a boolean on my model?
所以我这样做了
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的处理速度结束。即使我这样做了
But it always ended up in 50x50 processing. Even when I did like this
def icon_only? picture
false
end
我的语法可能会完全错误:但是我也尝试过
I might got my syntax up all wrong with the : but i also tried asking
if icon_only?
告诉我没有这样的方法名称。我迷路了...
Which told me there was no method name like that.Im lost...
推荐答案
使用:if
有条件,例如:
process :resize_to_limit => [50, 50], :if => :icon_only?
process :resize_to_limit => [300, 300], :if => ...
我实际上并没有尝试过,但已记录在在代码中,因此应该可以使用。
I haven't actually tried this but it's documented in the code, so it should work.
这篇关于Carrierwave的条件版本/过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文