Come integrare Paperclip e Mimetype-fu
-
08-07-2019 - |
Domanda
Innanzitutto, un po 'di background, perché c'è molta interazione in corso: sto prendendo le e-mail tramite Fetcher e le sto elaborando usando MMS2R per estrarre gli allegati. Questi allegati saranno generalmente file PDF o documenti MS Word, quindi ti aspetteresti che il loro tipo di contenuto
sia application / pdf
e application / msword
rispettivamente, ma sfortunatamente sembra che molti programmi di posta elettronica non lo facciano
Invece, gli allegati sono application / x-pdf
e application / x-doc
. Ho bisogno che questi siano impostati correttamente in modo che scribd-fu rispetti correttamente i documenti. Ora, mimetype-fu riuscirà a capire il giusto tipo di contenuto, ma per la mia vita, posso solo capire come impostare correttamente il tipo di contenuto dell'allegato con graffetta.
Ecco uno snippet del codice:
mms.process do |media_type, files|
# go through each file
files.each do |filename|
# if it's a format we support, create a record
if media_type =~ /pdf/ # just pdfs for now, to reduce confusion
File.open(filename) do |tempfile|
# Somewhere in here I'd like to change filename.content_type
# to the proper type using mimetype-fu
# except doing tempfile.content_type = whatever doesn't seem to work.
thing = Thing.new
thing.document = tempfile
thing.save!
end
end
end
end
Qualsiasi aiuto sarebbe apprezzato, perché ho battuto la testa contro un muro provando ogni sorta di cose per cercare di farlo funzionare. Ho già provato questi link o senza successo o senza grokking, cosa bisogna fare:
- http://gist.github.com/55009/
- http://railsforum.com/viewtopic.php?id=27448
- http://github.com/dbackeus/paperclip/commit/a514c6646645646646646366366646646646
Grazie mille!
Soluzione
Puoi semplicemente
thing.document_content_type = whatever
o stai facendo il tuo scribd-fu in document = o qualcosa del genere?