ユーザーが 3 つのファイル (A.ttf、A.svg、A.otf) を含む zip ファイルをアップロードし、元の 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