Ich entwickle die Rails 3.2.9 App und benutze Carrierwave als Datei-Uploader. Die Carriverwave readme den Weg weisen darauf hin, richtig content_type zu erhalten:carrierwave content_type immer null
- Add 'carrierwave/Verarbeitung/mime_types' zu einem Initialisierer oder Ihre Uploader (n) benötigen.
- Fügen Sie CarrierWave :: MimeTypes zu Ihrem Uploader hinzu.
- Fügen Sie den Prozess: set_content_type zu Ihren Uploader (n) hinzu.
Base auf das, Mein Uploader unten:
# 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
In meinem Modell, montieren Sie die Uploader als Datei:
mount_uploader :file, AttachmentUploader
Aber ich bekam content_type nil immer nach dem Upload-Datei:
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>
Irgendwelche Vorschläge? Vielen Dank.
PS: Ich habe bereits gem "mime-types", "~> 1.19"
in meinem Gemfile
hinzugefügt.