rails 3 - LoadError(无法加载此类文件 - zip/zip)

ggr*_*one 14 rubygems rubyzip ruby-on-rails-3

我正在使用rubyzip压缩csv文件,因此用户可以下载它.这在开发模式下完美运行.但是当我尝试在生产服务器(rackspace)上压缩文件时,我收到错误:LoadError(无法加载此类文件 - zip/zip).这是路径问题吗?有人知道修复吗?

我的代码在这一行调用错误:require'zip/zip'

我从这里尝试了解决方案,但它没有帮助.

eag*_*gor 29

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

gem 'rubyzip',  "~> 0.9.9"
Run Code Online (Sandbox Code Playgroud)

使用rubyzip(1.0.0)导致错误.

  • 或者您也可以添加`gem'zip-zip'`,它提供向后兼容性. (12认同)

mme*_*ell 18

将rubyzip升级到1.0.0时更改require 'zip/zip'require 'zip'.


小智 7

将roo添加到Rails项目后我遇到了这个问题.

Roo需要新界面,其他东西(其他一些宝石)使用旧界面 - 所以这些答案中的大部分都不起作用(无法降低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.


Bul*_*lat 5

我遇到了同样的问题:“ require'zip / zip'”代码上引发了错误,这篇文章中的解决方案也没有帮助。

经过长时间的研究,我发现问题是我的“ require'zip / zip'”语句是在单独的位置完成的

lib/exporters/package_exporter.rb
Run Code Online (Sandbox Code Playgroud)

文件,由于某种原因,默认情况下在生产环境的“ lib”文件夹中不处理“ require”语句。

当我将“需要'zip / zip'”移到我的开头时

app/controllers/packages_controller.rb
Run Code Online (Sandbox Code Playgroud)

问题解决了!


Ped*_*ena 5

我有一个与active_support类似的问题,只是将'zip'gem添加到我的Gemfile中,它工作正常