Crear múltiples archivos csv y descargar todo en un archivo zip usando rails

Estoy buscando una manera de crear múltiples archivos csv y descargarlos como un archivo zip dentro de una solicitud en mi aplicación rails.

Para construir el archivo utilizo rubyzip gem, para descargarlo solo la función incorporada de rails send_data. El problema que tengo es que la función add de rubyzip requiere un nombre de ruta para cargar archivos. Pero no hay una ruta ya que mis archivos csv se crean dentro de la misma solicitud.

Un poco de código:

# 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

¿Hay alguna manera de guardar mis archivos csv temporalmente en algún directorio, que pueda pasar un nombre de ruta a zipfile.add ()?

¡Buen fin de semana a todos y feliz codificación!

Respuestas a la pregunta(2)

Su respuesta a la pregunta