有没有更好的方法通过 Paperlip 将一些字符串保存为附件,如制作一个 tmp 文件,将字符串放入其中,再次打开它并将其另存为附件?
像这样:
def save_string data
tmp_file = "/some/path"
File.open(tmp_file,'w') do |f|
f.write(data)
end
File.open(tmp_file,'r') do |f|
ceneo_xml = f
save!
end
end
最佳答案
实际上有一个更好的方法 - 你可以将它包装到 Paperclip 增强的 StringIO 中,你会立即得到一个伪上传的文件。您可以通过定义实例方法来自定义它,也可以像这样直接创建 StringIO 的子类
class InvoiceAttachment < StringIO
def initialize(invoice, content)
@invoice = invoice
super(content)
end
def original_filename
from = @invoice.from
to = @invoice.to
date = @invoice.created_at.strftime('%B-%Y').downcase
"invoice_#{date}_from_#{from}_to_#{to}.pdf"
end
def content_type
'application/pdf'
end
end
尽情享受吧!
关于ruby-on-rails - 回形针保存附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199343/