ruby-on-rails - Rails - 以可移植的方式创建临时文件

标签 ruby-on-rails ubuntu temporary-files

我的 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/

相关文章:

Python:生成安全临时文件名

vim - grep 忽略 vim 临时文件

sql - 在外键范围内的列中插入序列值 - Rails 和 Postgres

PHP-FPM + Laravel + Nginx + Ubuntu 权限

regex - 使用 `find` 命令查找带有 CJK 字符的文件的正则表达式是什么?

c - C 中的服务器-客户端 : Weird behaviour when sending bytes

android - 在 Android 中创建临时文件

ruby-on-rails - Rails 中的 CookieOverflow 和小型 session

javascript - 使用 Rails/jQuery 的可点击表格行 - 无法正常工作的行内链接

ruby-on-rails - 为什么存在.so文件却出现 "no such file or directory"错误?