我是否可以将carrierwave mount_uploader仅应用于db列中的某些数据而不应用于其他数据

时间:2016-05-26 01:52:56

标签: ruby-on-rails model rubygems carrierwave

在我的rails应用中,我items有很多values。用户可以更改项目的值。我将值分为3种类型或value_types。 1是一个或两个字,2是长文本,3是图像。用户有一个输入字段显示值类型1,文本字段显示为2,文件字段显示value_type为3。

我刚刚实施了carrierwave并且它适用于图片上传,但现在如果我在value列中输入任何不是图像文件的信息,它就不起作用。我的应用程序采用硬编码方式,我必须更改很多内容才能将图像值类型拆分为单独的列。

我可能会在模型中添加类似if语句的内容,因此mount_uploader仅适用于具有value_type == 3的值。我想出了下面的代码,但虽然它没有抛出任何错误,但它似乎也没有什么区别。

mount_uploader :value, CheckItemValueImageUploader, if: 'value_type == 3'

我也试过这个适用于非图片类型但是将图片保存为#<ActionDispatch::Http::UploadedFile:0x007fe74b2e2e28>而不是image-name.png

if :value_type == 3
mount_uploader :value, CheckItemValueImageUploader
else
end

如果mount_uploader等于3,任何人都知道如何让载波value仅适用于value_type

0 个答案:

没有答案