max*_*s ツ 3 ruby-on-rails-3 carrierwave
如何在单个上传器用于多种文件类型时验证上传文件的扩展名?
我正在使用单一模型,即包含属性文件的Asset.上传器安装在文件属性上.资产模型还有一个名为feature_id的属性.feature_id指的是视频,音频等功能.
那么,我应该如何根据feature_id值验证具有多个扩展名白名单的文件类型?
使用ruby 1.9和rails 3.2.11
任何帮助将不胜感激.
在上传器中定义您的白名单,如载波文档中所示.
class MyUploader < CarrierWave::Uploader::Base
def extension_white_list
%w(jpg jpeg gif png)
end
end
Run Code Online (Sandbox Code Playgroud)
虽然答案已被接受,但我有更好的方法.试试这个代码.
class MyUploader < CarrierWave::Uploader::Base
def extension_white_list
if model.feature_id == 1
%w(jpg jpeg gif png)
elsif model.feature_id == 2
%w(pdf doc docx xls xlsx)
elsif model.feature_id == 3
%w(mp3 wav wma ogg)
end
end
end
Run Code Online (Sandbox Code Playgroud)
feature_id == 1意味着您只想允许图片上传,这feature_id == 2意味着只允许上传文档并feature_id == 3允许您仅上传音频文件.
希望它能回答这个问题.您可以为其他类型的文件添加更多检查.
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |