从参数创建rails上的UploadedFile对象

时间:2014-02-21 06:17:59

标签: ruby-on-rails paperclip mandrill

我正在使用一个邮件服务器向我的应用发出JSON请求,以通知收到的邮件。处理附件时,它给了我一个原始的:

    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)'

我正在尝试将其转换为某种适合使用Paperclip处理的Rails'文件'对象。

有什么想法最好的方法吗?

非常感谢, 克里斯。

1 个答案:

答案 0 :(得分:0)

我刚刚解决了这个问题,将其与其他答案拼凑在一起。

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
祝你好运!