2011-05-13 14 views
25

Sé que hay otro hilo en este tema, pero todavía me enfrento a este problema incluso después de usar todas las soluciones. ¿Hay alguna otra forma de generar archivos zip? ¿Puedo usar los comandos del sistema Ubuntu?Usando el error de rubyzip - no se puede cargar ese archivo - zip/zip

lo hice

gem install rubyzip 

tengo

require 'rubygems' 
require 'zip/zip' 

en mi controlador de

Pero sigo teniendo el mismo error - no existe el fichero a cargar - zip/postal Probé con ruby ​​1.8.7 y ruby ​​1.9.2 con rails 3.0.5 en Ubuntu

¿Podrías p arrendamiento ayúdame? Gracias.

+0

¿Alguna vez encontró una solución? Estoy en la misma situación. Gracias –

+0

No, todavía estoy en busca de la solución, funciona en carcasa irb pero no con rieles. – coredump

+0

Asegúrate de tener 'gem 'rubyzip'' en tu Gemfile. Además, depende de qué funcionalidad de rubyzip estés usando, pero es posible que necesites usar 'require 'zip/zipfilesystem'' además de lo que tienes arriba. –

Respuesta

22

Después de pasar mucho tiempo, finalmente descubrí la parte faltante. Al usar la gema rubyzip, también tuve que requerir zip/zip.

Agregar a su Gemfile

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

Simplemente añadiendo gem 'rubyzip no funcionó para mí.

+2

esto no funcionó en nuestro caso. –

+0

funcionó para mí después de haber cambiado para ser ...: require => 'zip' en Gemfile, y en el código de la aplicación para requerir 'zip' – Straff

1

Para cualquier otra persona que tenga problemas con rubyzip y se encuentre con este hilo: recuerde que siempre puede pagar a una utilidad externa de línea de comandos zip. Hay una serie de utilidades de línea de comandos gratuitas que puede encontrar a través de Google. Una vez que instale el programa zip de la línea de comando de su elección y se asegure de que esté en la ruta del sistema, solo use los backticks para conducirlo desde Ruby. Por supuesto, esto no funcionará para las aplicaciones web que se ejecutan en Heroku, etc.

3

También asegúrese de que su proceso de descompresión utiliza:

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

no

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

La capital F en ZipFile hace la diferencia.

1

En mi caso se necesitaba para cambiar de

Zip::File.open(...) 

a

Zip::ZipFile.open(...) 

por supuesto tengo que añadir también que esto Gemfile:

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

me fijo este problema especificando la versión de gema 0.9.9 en Gemfile:

gem 'rubyzip', "~> 0.9.9" 

El uso de rubyzip (1.0.0) ha provocado un error. Hay una nota sobre esto en rubyzip gihub:

Rubyzip interface changed !!! No es necesario que requiera "zip/zip" y el prefijo Zip en los nombres de clase eliminados.Si tiene problemas con alguna de terceros gemas lo que requería rubyzip puede utilizar junto solución temporal:

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

Tiene razón, rubyzip (1.0.0) causa un error. –

+0

interesante cómo se hizo esta pregunta mucho antes de que se lanzara el 1.0.0 – eagor

+1

¡Gracias! Ahorró mi tiempo! –

18

Sobre la base de @ eagor respuesta, si desea utilizar rubyzip> = 1.0, pero necesitan la compatibilidad hacia atrás añadir esto a su Gemfile:

gem 'zip-zip' 

países actualizar el código heredado.

+2

gem install 'zip-zip' trabajo para mí –

+0

Lo agregué al Gemfile. ¡Y funcionó! –

Cuestiones relacionadas