在我的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