使用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'
花了很多时间后,我终于找到了缺失的部分。 使用rubyzip
gem时,我还需要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'
。
还要确保解压缩过程使用:
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'