Pakowanie obrazkow do zip "w locie" pomocy :(

WItam forumowiczow ! mam taki problem ze chciałbym umieć zapisywać do pliku zip obrazki, bez zapisywanie ich na dysku :confused: do tej pory to robiłem tak :

def chosen_photos_as_zip_path(data)
require ‘zlib’
require ‘zip/zip’

quality_and_number = self.id.to_s + (quality.nil? ? "_print" : "_#{quality}").to_s
filename = "tmp/photos_#{quality_and_number}.zip" 

if File.exist?(filename)
  File.delete(filename)
end
  Zip::ZipFile.open(filename, Zip::ZipFile::CREATE){ |zip|    
     self.get_all_chosen_photos.each do |photo|
       begin
        zip.add(photo.filename, 'public'+photo.public_filename(quality))
      rescue
        nil # TODO: douplicated photos names are ingored
      end
     end
  }
  filename

end

No i to wymaga zapisy na dysk, jak to zrobić bez tego ? Nie umiem sobie poradzić nawet z biblioteką ZLib

Możesz spróbować skorzystać z otwartych klas i tak pozmieniać Zlib, żeby korzystał ze StringIO, a nie IO.