2014-02-21 1 views
0

Я использую почтовый сервер, который отправляет JSON-запросы в мое приложение для уведомления о входящей почте. При обработке вложений, это дает мне сырье:Создание объекта UploadedFile на рельсах из параметров

a1.name 
    # => e.g. 'sample.pdf' 
    a1.type 
    # => e.g. 'application/pdf' 
    a1.content 
    # => this is the raw content provided by Mandrill, and will be base64-encoded if not plain text 
    # e.g. 'JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvY ... (etc)' 
    a1.decoded_content 
    # => this is the content decoded by Mandrill::Rails, ready to be written as a File or whatever 
    # e.g. '%PDF-1.3\n%\xC4\xE5 ... (etc)' 

То, что я пытаюсь сделать, это превратить это в какой-то Rails «файл» объект, который подходит для обработки с Скрепка.

Любые мысли о том, как лучше всего подойти к этому?

Большое спасибо, Крис.

ответ

0

Я просто решил это, собрал это вместе из других ответов на SO.

file = StringIO.new(a1.decoded_content) 
file.class.class_eval { attr_accessor :original_filename, :content_type} 
file.original_filename = a1.name 
file.content_type = a1.type 
@d = Document.create #Document is my model that has a paperclip attachment called doc 
@d.doc = file 
@d.save 

Удачи вам!

Ben

Смежные вопросы