Sto sviluppando l'app Rails 3.2.9 e utilizzo di Carrierwave come file uploader. Il readme Carriverwave sottolineare il modo per ottenere corretto content_type:carrierwave content_type sempre nil
- Add richiede 'carrierwave/elaborazione/mime_types' a un inizializzatore o il vostro uploader (s).
- Aggiungi include CarrierWave :: MimeTypes al tuo uploader.
- Aggiungi processo: set_content_type al tuo uploader (s).
Base su questo, mio uploader è qui sotto:
# 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
Nel mio modello, montare l'uploader in formato:
mount_uploader :file, AttachmentUploader
Tuttavia, ho sempre avuto zero content_type dopo file di caricamento:
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>
Qualche suggerimento? Grazie.
PS: ho già aggiunto gem "mime-types", "~> 1.19"
nel mio Gemfile
.