Подтвердить что ты не робот

Rails - создание временных файлов в переносном режиме

Приложение "Мои рельсы" запускается на серверной машине Ubuntu.

Мне нужно создать временные файлы, чтобы "подать" их во второе независимое приложение (для этого я буду использовать задачи рейка, если эта информация понадобится)

Мой вопрос: какой лучший способ создания временных полей в приложении rails?

Поскольку я нахожусь в ubuntu, я мог бы создать их на /tmp/whatever, но что бы работало только в Linux.

Я хочу, чтобы мое приложение было как можно более переносимым, поэтому оно может быть установлено на компьютерах Windows и Mac, если это необходимо.

Любые идеи?

Большое спасибо.

4b9b3361

Ответ 1

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 заканчивается.

Ответ 2

У приложений Rails также есть свой собственный каталог tmp/. Я предполагаю, что он всегда доступен и, следовательно, хороший кандидат для использования и сохранения вашего приложения.