Rails – 以便携的方式创build临时文件

我的Rails应用程序在Ubuntu服务器上运行。

我需要创build临时文件,以便将它们“馈送”到第二个独立的应用程序(如果需要这种信息,我将使用rake任务)

我的问题是:在Rails应用程序上创build临时字段的最佳方法是什么?

由于我在Ubuntu的,我可以创build/tmp/whatever ,但什么工作只能在Linux。

我希望我的应用程序尽可能便携 – 所以如果需要的话,它可以安装在Windows机器和Mac上。

有任何想法吗?

非常感谢。

tmp/确实是放置文件的正确位置。

我发现在该文件夹上创建文件的最佳方式是使用ruby的tempfile库 。

代码如下所示:

 require 'tempfile' def foo() # creates a temporary file in tmp/ Tempfile.open('prefix', Rails.root.join('tmp') ) do |f| f.print('a temp message') f.flush #... do more stuff with f end end 

我喜欢这个解决方案,因为

  • 它会自动生成随机文件名(您可以提供一个前缀)
  • 当文件不再使用时,它会自动删除文件。 例如,如果在rake任务上调用,当rake任务结束时,文件被删除。

Rails应用程序也有自己的tmp/目录。 我想那个总是可用的,因此是一个很好的候选人使用和保持你的应用程序的便携性。