如何在ruby-rails中自动删除临时文件?

时间:2009-03-30 10:33:14

标签: ruby-on-rails ruby temporary-files

My Rails应用必须处理并生成PDF XFA文件并发送给用户/浏览器。 它的工作正常。但问题是,在将文件发送给用户之前,它会在rails tmp目录中创建2个文件。

如果有10个请求进入pdf_controller,tmp目录中的临时文件数将翻倍,占用空间。

在寻找周围之后,我认为扫地机会来救援。但对扫地机的了解不多。

那么,任何人都可以建议走哪条路吗?

2 个答案:

答案 0 :(得分:5)

Tempfile将在对象完成后删除文件。

Tempfile on Rdoc

示例:

def get_pdf
  model = Model.find(params[:id])
  file = Tempfile.new
  model.to_pdf(file)
  send_file file.path, ...
end

如果您将代码粘贴到问题中,我可以提供更好的示例。

答案 1 :(得分:1)

您可以使用cron任务,每隔n分钟删除一次文件,或者,您可以从控制器本身订购删除。