web-dev-qa-db-fra.com

Erreur de rubyzip - aucun fichier de ce type à charger - Zip/zip

Je sais qu'il existe un autre fil à ce sujet, mais je suis toujours confronté à ce problème même après avoir utilisé toutes les solutions. Existe-t-il un autre moyen de générer des fichiers Zip? Puis-je utiliser les commandes du système Ubuntu? 

J'ai fait

 gem install rubyzip

J'ai

require 'rubygems'
require 'Zip/zip'

dans mon contrôleur

Mais je reçois toujours la même erreur - pas de fichier de ce type à charger - Zip/zip J'ai essayé avec Ruby 1.8.7 et Ruby 1.9.2 avec Rails 3.0.5 sur Ubuntu.

Pourrais-tu m'aider s'il te plaît? Merci.

25
coredump

Après avoir passé beaucoup de temps, j'ai finalement trouvé la partie manquante. Lors de l'utilisation de la gemme rubyzip, je devais également exiger Zip/zip.

Ajoutez ceci à votre Gemfile

gem 'rubyzip', :require => 'Zip/zip'

Ajouter simplement gem 'rubyzip n'a pas fonctionné pour moi.

22
coredump

J'ai résolu ce problème en spécifiant la version 0.9.9 de Gemme dans Gemfile:

gem 'rubyzip',  "~> 0.9.9"

L'utilisation de rubyzip (1.0.0) a provoqué une erreur. Il y a une note à ce sujet sur rubyzip gihub :

L'interface de Rubyzip a changé !!! Inutile de demander que "Zip/zip" et le préfixe Zip Dans les noms de classe soient supprimés. Si vous rencontrez des problèmes avec des gems tiers Avec ce qui nécessitait rubyzip, vous pouvez utiliser le correctif temporaire suivant:

# Place this line before your library or on the head of your Gemfile
gem 'rubyzip', '< 1.0.0'
23
eagor

En vous appuyant sur la réponse de @ eagor, si vous souhaitez utiliser rubyzip> = 1.0 mais que vous avez besoin d'une compatibilité ascendante, ajoutez ceci à votre Gemfile:

gem 'Zip-zip'

Enregistre la mise à jour du code hérité.

18
Zubin

Lors de la mise à niveau de rubyzip vers la version 1.0.0, remplacez require 'Zip/zip' par require 'Zip'.

https://stackoverflow.com/a/19506372/567399

7
mmell

Assurez-vous également que votre processus de décompression utilise:

Zip::ZipFile.open(self.data) do |zipfile|

ne pas 

Zip::Zipfile.open(self.data) do |zipfile|

La capitale F sur ZipFile fait la différence.

3
Chris Shanks

Dans mon cas, il me fallait changer de 

Zip::File.open(...)

à

Zip::ZipFile.open(...)

bien sûr, je dois aussi ajouter ceci à Gemfile:

gem 'rubyzip', :require => 'Zip/zip'
1
Artur Małecki

Pour tous ceux qui ont des problèmes avec rubyzip et rencontrent ce fil de discussion: souvenez-vous que vous pouvez toujours utiliser Shell pour un utilitaire Zip en ligne de commande externe. Il existe un certain nombre d’utilitaires de ligne de commande gratuits que vous pouvez trouver via Google. Une fois que vous avez installé le programme Zip de votre choix en ligne de commande et que vous vous assurez qu'il se trouve bien sur le chemin du système, il vous suffit d'utiliser des backticks pour le piloter depuis Ruby. Bien sûr, cela ne fonctionnera pas pour les applications Web qui fonctionnent sur Heroku, etc.

1
Alex D