私はRails 3.2.9アプリを開発しており、ファイルアップローダとしてCarrierwaveを使用しています。 Carriverwaveのreadmeは正しいCONTENT_TYPEを取得する方法を指摘:carrierwave content_type always nil
- は、初期化子またはあなたのアップローダー(複数可)に「carrierwave /処理/ 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
しかし、私はいつも、アップロードファイルの後にnilをCONTENT_TYPEを得ました:
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:Gemfile
にはすでにgem "mime-types", "~> 1.19"
が追加されています。