Я сделал что-то подобное, но мне нужно было получать файлы с S3 вместо локальной системы. Мои файлы были не большими, поэтому я решил просто загрузить их в память. Так что вместо этого:
zos.print IO.read(file.attach.path)
Я добавил require "open-uri"
, а затем сделал это:
zos.print open(asset.data.url) {|f| f.read}
Где asset
- объект скрепки.