我正在开发 Rails 3.2.9 应用程序并使用 Carrierwave 作为文件上传器。Carriverwave 自述文件指出了获取正确 content_type 的方法:
- 将 require 'carrierwave/processing/mime_types' 添加到初始化程序或您的上传者。
- 将包含 CarrierWave::MimeTypes 添加到您的上传器。
- 将进程 :set_content_type 添加到您的上传者。
基于此,我的上传者如下:
# encoding: utf-8
require 'carrierwave/processing/mime_types'
class AttachmentUploader < CarrierWave::Uploader::Base
include CarrierWave::MimeTypes
storage :file
def store_dir
"#{base_store_dir}/#{model.id}"
end
process :set_content_type
end
在我的模型中,将上传器挂载为文件:
mount_uploader :file, AttachmentUploader
但是,上传文件后我总是得到 content_type nil :
1.9.3-p327 :013 > a.file.class
=> AttachmentUploader
1.9.3-p327 :010 > a.file.file
=> #<CarrierWave::SanitizedFile:0x00000004046330 @file="uploads/course/000/000/026/attachment_file/6/myIcon.png", @original_filename=nil, @content_type=nil>
有什么建议吗?谢谢。
PS:我已经gem "mime-types", "~> 1.19"
在我的Gemfile
.