rails 3 - LoadError (не удается загрузить такой файл zip/zip)

Я использую rubyzip для архивирования CSV-файла, чтобы пользователи могли его загрузить. Это отлично работает в режиме разработки. Но когда я попытался заархивировать файл на производственном сервере (rackspace), я получил ошибку: LoadError (невозможно загрузить такой файл -- zip/zip). Это проблема пути? Кто-нибудь знает исправление?

Ошибка вызывается в моем коде в этой строке: требуется 'zip/zip'

Я пробовал решение из здесь , но это не помогло.


person ggrillone    schedule 22.08.2012    source источник
comment
Не имеет отношения к этому вопросу, но на случай, если у кого-то возникнет такая же проблема, как у меня - с версиями › 1.0 вы должны require 'zip' не 'zip/zip'   -  person kaczor1984    schedule 11.12.2015


Ответы (8)


У меня была та же проблема: ошибка возникла при коде «требовать 'zip/zip'» и решение из этот пост тоже не помог.

После долгих исследований я обнаружил, что проблема заключалась в том, что мой оператор «require 'zip/zip'» был сделан в отдельном

lib/exporters/package_exporter.rb

файл, и по какой-то причине операторы «require» не обрабатываются в папке «lib» в рабочей среде по умолчанию.

Когда я переместил "require 'zip/zip'" в начало моего

app/controllers/packages_controller.rb

проблема решилась!

person Bulat    schedule 29.11.2012
comment
Можете ли вы показать мне пример? У меня такая же проблема и никак не могу решить. - person Rafael Fragoso; 20.05.2013

Я исправил эту проблему, указав версию gem 0.9.9 в Gemfile:

gem 'rubyzip',  "~> 0.9.9"

Использование rubyzip (1.0.0) вызвало ошибку.

person eagor    schedule 05.09.2013
comment
Или вы также можете добавить gem 'zip-zip', что обеспечивает обратную совместимость. - person baxang; 17.03.2014

При обновлении rubyzip до 1.0.0 измените require 'zip/zip' на require 'zip'.

person mmell    schedule 21.10.2013
comment
Я думаю, это победитель - person Arcolye; 12.07.2014

У меня возникла эта проблема после добавления roo в проект Rails.

Ру нуждался в новом интерфейсе, что-то еще (какой-то другой драгоценный камень) использовало старый интерфейс, поэтому большинство этих ответов не работали (не мог понизить версию rubyzip, rubyzip2 устарел, не требовал zip/zip в моем проекте).

Что сработало для меня, так это ответ cassio-s-cabral со ссылкой на страницу rubyzip github.

gem 'rubyzip', '>= 1.0.0' # will load new rubyzip version
gem 'zip-zip' # will load compatibility for old rubyzip API.
person rob.g    schedule 27.04.2015

У меня была похожая проблема с active_support, я просто добавил гем 'zip' в свой Gemfile, и все заработало нормально.

person PedroSena    schedule 30.08.2013

Я использую гем rubyzip2, чтобы решить эту проблему.

gem 'rubyzip2'
person Mr.LamYahoo    schedule 30.01.2015

какая работа для меня состояла в том, чтобы установить 2 драгоценных камня:
gem install rubyzip gem install zip и в скрипте поставить
require 'rubygems' require 'zip/zip'

person roxdurazo    schedule 14.08.2015

На их странице github объясняется, что делать.

Изменился интерфейс Rubyzip!!! Не нужно удалять префиксы "zip/zip" и Zip в именах классов.

Если у вас есть проблемы со сторонними драгоценными камнями, для которых требуется старая версия rubyzip, вы можете использовать следующий обходной путь:

gem 'rubyzip', '>= 1.0.0' # will load new rubyzip version
gem 'zip-zip' # will load compatibility for old rubyzip API.
person cassioscabral    schedule 12.12.2014