如何将数据写入临时文件?

时间:2019-02-14 11:18:12

标签: ruby-on-rails ruby

我有一个原始文件,需要复制到临时文件。
我正在尝试在Tempfile.create块内进行操作
但是文件没有出现。

如何正确创建临时文件?

dest_path_to = "public/medicine/reports/#{report_id}"
FileUtils.mkdir_p(dest_path_to)
original = File.open(pdf_path).read

file = Tempfile.create("report-#{report_id}.pdf", dest_path_to) do |f|
  f.write original
end

1 个答案:

答案 0 :(得分:3)

来自documentation(重点是我):

  

如果给出了一个块,则将构造一个File对象,并使用该对象作为参数来调用该块。该文件块终止后,文件对象将自动关闭并删除临时文件。调用返回该块的值。

如果出于某种原因希望文件显示在文件系统中,请不要使用Tempfile.create的块形式。