15

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

在我的代码中调用了此行的错误:需要'zip/zip'

我已经尝试过这里的解决方案,但没有帮助。

4

8 回答 8

29

我通过在 Gemfile 中指定 gem 版本 0.9.9 解决了这个问题:

gem 'rubyzip',  "~> 0.9.9"

使用 ruby​​zip (1.0.0) 会导致错误。

于 2013-09-05T07:26:42.587 回答
20

将 ruby​​zip 升级到 1.0.0 时,更改require 'zip/zip'require 'zip'.

于 2013-10-21T23:06:01.637 回答
8

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

Roo 需要新界面,其他东西(其他一些 gem)正在使用旧界面 - 所以这些答案中的大多数都不起作用(无法降低 ruby​​zip 的版本,不推荐使用 ruby​​zip2,不需要 zip/zip在我的项目中)。

对我有用的是 cassio-s-cabral 对ruby​​zip github页面的回答。

gem 'rubyzip', '>= 1.0.0' # 将加载新的 ruby​​zip 版本
gem 'zip-zip' # 将加载旧 ruby​​zip API 的兼容性。
于 2015-04-27T03:12:06.143 回答
5

我遇到了同样的问题:在“需要'zip/zip'”代码上抛出错误,这篇文章的解决方案也没有帮助。

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

lib/exporters/package_exporter.rb

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

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

app/controllers/packages_controller.rb

问题解决了!

于 2012-11-29T13:06:23.193 回答
5

我在 active_support 上遇到了类似的问题,只是将“zip”gem 添加到我的 Gemfile 中,它运行良好

于 2013-08-30T16:00:29.430 回答
2

我正在使用ruby​​zip2 gem 来解决这个问题

gem 'rubyzip2'
于 2015-01-30T09:42:51.370 回答
2

对我有用的是安装 2 个 gem:
gem install rubyzip gem install zip 并在脚本中放置
require 'rubygems' require 'zip/zip'

于 2015-08-14T23:20:07.093 回答
0

在他们的github 页面中解释了要做什么。

Rubyzip 界面变了!!!无需删除类名中的“zip/zip”和 Zip 前缀。

如果您对任何需要旧版本 ruby​​zip 的第三方 gem 有疑问,您可以使用下一个解决方法:

gem 'rubyzip', '>= 1.0.0' # will load new rubyzip version
gem 'zip-zip' # will load compatibility for old rubyzip API.
于 2014-12-12T14:13:56.737 回答