使用rubyzip错误 – 没有这样的文件加载 – zip / zip

我知道这个主题还有另一个主题,但即使在使用所有解决方案后我仍然面临这个问题。 有没有其他方法来生成zip文件? 我可以使用Ubuntu系统命令吗?

我做到了

gem install rubyzip 

我有

 require 'rubygems' require 'zip/zip' 

在我的控制器中

但我仍然得到相同的错误 – 没有这样的文件加载 – zip / zip我尝试使用ruby 1.8.7和ruby 1.9.2与rails 3.0.5在Ubuntu

请你帮助我好吗? 谢谢。

我通过在Gemfile中指定gem版本0.9.9来修复此问题:

 gem 'rubyzip', "~> 0.9.9" 

使用rubyzip(1.0.0)导致错误。 在rubyzip gihub上有一个关于这个的说明:

Rubyzip界面改变了! 无需执行“zip / zip”和删除类名中的Zip前缀。 如果您对任何第三方gem有疑问,需要使用rubyzip,您可以使用下一个临时修复:

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

花了很多时间后,我终于找到了缺失的部分。 使用rubyzipgem时,我还需要zip/zip

将其添加到您的Gemfile中

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

只是添加gem 'rubyzip对我来说不起作用。

建立@ eagor的答案,如果您想使用rubyzip> = 1.0但需要向后兼容,请将此添加到您的Gemfile:

 gem 'zip-zip' 

保存更新遗留代码。

将rubyzip升级到1.0.0时require 'zip/zip'require 'zip'

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

还要确保解压缩过程使用:

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

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

ZipFile上的资本F有所不同。

对于任何遇到rubyzip问题并遇到此线程的人:请记住,您始终可以使用外部命令行zip实用程序。 您可以通过Google找到许多免费的命令行实用程序。 一旦你安装了你选择的命令行zip程序并确保它在系统路径上,只需使用反引号从Ruby中驱动它。 当然,这不适用于在Heroku上运行的Web应用程序等。

在我的情况下,我需要改变

 Zip::File.open(...) 

 Zip::ZipFile.open(...) 

当然我还需要将它添加到Gemfile:

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