Мой пользователь загружает zip-файл с 3 файлами (A.ttf, A.svg, A.otf), и я хочу сохранить оригинальный zip плюс 3 файла шрифта внутри него. Я создал 3 версии с этим кодом
version :ttf
process :font => :ttf
end
version :svg
process :font => :svg
end
version :otf
process :font => :otf
end
Он успешно сохраняет 4 копии исходного файла, все с правильным именем файла. Тем не менее, я не знаю, как заставить CarrierWave хранить отдельные файлы. Этот код не работает. (
def font(format)
new_file = nil
# Loop through the zip file and extract the files
Zip::ZipFile.open(@file.file) do |files|
files.each do |f|
next unless f.file?
filename = f.name.split("/").last
ext = filename.split('.').last
# Save the file with the proper file extension
new_file = f if ext == format
end
# Return the file to be stored by CarrierWave
new_file
end