我的 Rails 应用程序在 Ubuntu 服务器计算机上运行。
我需要创建临时文件以便将它们“提供”给第二个独立的应用程序(我将为此使用 rake 任务,以防需要此信息)
我的问题是:在 Rails 应用程序上创建临时字段的最佳方法是什么?
因为我在 ubuntu 中,所以我可以在 /tmp/whatever
上创建它们,但只有在 linux 上才能工作。
我希望我的应用程序尽可能具有可移植性 - 因此如果需要,它可以安装在 Windows 机器和 mac 机器上。
有什么想法吗?
非常感谢。
最佳答案
tmp/
绝对是放置文件的正确位置。
我发现在该文件夹上创建文件的最佳方法是使用 ruby's tempfile library .
代码如下所示:
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 任务结束时删除文件。
关于ruby-on-rails - Rails - 以可移植的方式创建临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2131353/