Rails 3.2.9 アプリを開発しており、Carrierwave をファイル アップローダーとして使用しています。Carriverwave の readme は、正しい content_type を取得する方法を指摘しています。
- require 'carrierwave/processing/mime_types' をイニシャライザーまたはアップローダーに追加します。
- include 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
.