これは機能します(ただし、面倒なようです):
File.new("temp.pdf", "w").close
File.open("temp.pdf", "w+") do |f|
f.write(response.body)
pdf = PDF.new({
:document => f,
})
pdf.save
end
# delete the temp file
File.delete("temp.pdf")
しかし、S3 バケットで PDF を作成するたびに、作成、書き込み、アップロード、削除を行う必要はありません。
これは私がやりたいことです:
pdf = PDF.new({
:document => response.body,
})
pdf.save
しかし、response.body は単なるバイトの集まりであるため (response.body の形式や検索方法についてはよくわかりません)、paperclip はそれをファイルに変換する方法を知りません。
注: response.body は DocRaptor: http://docraptor.com/からのもので、 html を PDF に変換します。