Ответ 1
Возможно, вы сможете использовать каталог #{RAILS_ROOT}/tmp/
или Rails.root.join('tmp').to_s
:
Аспен и Бамбук
[...]
Существует два каталога, которые можно записать:./tmp
и./log
(под вашим корнем приложения).
[...]Кедр
Cedar предлагает эфемерную записываемую файловую систему. Вы можете записывать на диск в любом месте. Ваши изменения будут потеряны при перезагрузке и развороте динозавра.
RAILS_ROOT
предназначен для более старых версий Rails, Rails.root
предназначен для более новых версий.
Вы не можете зависеть от чего-либо, переживающего запросы, конечно, нет гарантии, что вы даже будете работать с одним и тем же dyno.
Если вы остаетесь в рамках одного процесса или запроса, Rails.root.join('tmp')
должен использоваться. Если вам нужны временные данные, чтобы выжить по запросам или процессам, вам лучше использовать что-то другое (например, MongoDB или PostgreSQL) в качестве сборника для ваших данных на пути к S3.
Благодарим Бенджамин Уилер за хедшоу о смене RAILS_ROOT
до Rails.root
.