私の Rails 4.2 アプリケーションでは、RubyZIPを使用して、次のようなコントローラー アクションを作成しています。
class SomeController < ApplicationController
def some_action
file_stream = Zip::ZipOutputStream.write_buffer do |zip|
zip.put_next_entry "dir1/hello.txt"
zip.print "Hello"
zip.put_next_entry "dir2/hello.txt"
zip.print "World"
end
file_stream.rewind
respond_to do |format|
format.zip do
send_data file_stream.read, filename: "zip_file.zip"
end
end
end
end
この例では、2 つのファイルが動的に作成されて書き込まれ、ZIP ファイルに保存されます。
しかし、既存のファイル (!) を ZIP ファイルに追加するにはどうすればよいですか?たとえば、私の/app/assets/documents
フォルダーの PDF ファイルはどうすればよいでしょうか?
これははるかに簡単に達成できるはずですが、ドキュメントが見つかりません。
助けてくれてありがとう。