Как распаковать файл в Ruby on Rails?

Я загружаю файл на сервер в Ruby on Rails

Обычно это текстовый файл, и я сохраняю его в модели как ' file 'в Submission ActiveRecord с другими полями, такими как заголовок отправки ... и т. д.

Однако пользователь также может отправить zip-файл. В этом случае zip-файл должен быть разархивирован, и для каждого файла в zip-архиве должно быть создано новое представление с теми же текстовыми полями, но с текущим файлом.

Как я могу это сделать?

Я просмотрел примеры распаковки в сети, но большинство из них используют каталог для распаковки файлов. Я не уверен, нужно ли мне это, поскольку в текущем методе создания SubmissionsController получается файловый объект, и я предполагаю, что путь для сохранения файла автоматически создается при вызове метода сохранения Submission. Итак, я подумал, что, возможно, мне следует распаковать zip-файл в памяти, чтобы получить массив файловых объектов, а затем создать новое представление с каждым файловым объектом, но с теми же полями, а затем позволить ActiveRecord генерировать пути к файлам для каждого из них, когда он сохраняет их в база данных. Я могу ошибаться здесь, потому что я новичок в Rails и Ruby.

41
задан siamii 9 February 2012 в 01:59
поделиться