Создание нескольких csv-файлов и загрузка всех в один zip-архив с использованием rails
Я ищу способ создать несколько CSV-файлов и загрузить их в виде одного zip-архива в рамках одного запроса в моем приложении rails.
Для сборки архива я использую rubyzip gem - для его загрузки просто встроена функция rails send_data. У меня проблема в том, что функция добавления rubyzip требует путь для загрузки файлов. Но пути нет, так как мои CSV-файлы создаются в рамках одного запроса.
Некоторый код:
# controller action to download zip
def download_zip
zip = @company.download_all
send_data zip, filename: "abc.zip", type: 'application/zip'
end
# method to create zip
def download_all
Zip::File.open('def.zip', Zip::File::CREATE) do |zipfile|
self.users.each do |user|
#some magic to combine zipfile.add() and user.to_csv
end
end
end
# method to create csv
def to_csv
CSV.generate do |csv|
#build awesome csv
end
end
Есть ли способ временно сохранить мои csv-файлы в каком-то каталоге, чтобы я мог передать путь к zipfile.add ()?
Хороших выходных и удачного кодирования!