Я пытаюсь обслуживать динамически сгенерированные файлы в приложении rails, поэтому, когда пользователь щелкает определенную ссылку, файл создается и отправляется клиенту с использованием send_data.
Файл не предназначен для повторного использования: это короткий текстовый файл, и восстановление должно быть очень недорогим, так как он не будет загружаться так часто; но если это необходимо или удобно, я могу сохранить его в базе данных, поэтому он генерируется только один раз.
Во-первых, я хотел бы сгенерировать файл в памяти и отправить его в контроллер. Я пытаюсь заархивировать что-то вроде этого:
def DownloadsController < ApplicationController
def project_file
project = Project.find(params[:id])
send_data project.generate_really_simply_text_file_report
end
end
Но я не знаю, как создать поток в памяти, поэтому в файловой системе не создается файл.
Другим вариантом было бы создание файла со случайным именем в каталоге tmp приложения rails и отправка его оттуда, но тогда файл будет храниться там, чего я бы предпочел не делать.
Редактировать: если я не ошибаюсь, send_file блокирует петицию до тех пор, пока файл не будет отправлен, так что это может сработать...
Есть еще советы или мнения?
заранее спасибо