我正在使用 rubyzip 压缩 csv 文件,以便用户可以下载它。这在开发模式下完美运行。但是当我尝试在生产服务器(机架空间)上压缩文件时,我收到错误:LoadError(无法加载此类文件--zip/zip)。是路径问题吗?有人知道修复吗?
在我的代码中调用了此行的错误:需要'zip/zip'
我已经尝试过这里的解决方案,但没有帮助。
我正在使用 rubyzip 压缩 csv 文件,以便用户可以下载它。这在开发模式下完美运行。但是当我尝试在生产服务器(机架空间)上压缩文件时,我收到错误:LoadError(无法加载此类文件--zip/zip)。是路径问题吗?有人知道修复吗?
在我的代码中调用了此行的错误:需要'zip/zip'
我已经尝试过这里的解决方案,但没有帮助。
我通过在 Gemfile 中指定 gem 版本 0.9.9 解决了这个问题:
gem 'rubyzip', "~> 0.9.9"
使用 rubyzip (1.0.0) 会导致错误。
将 rubyzip 升级到 1.0.0 时,更改require 'zip/zip'
为require 'zip'
.
在将 roo 添加到 Rails 项目后,我遇到了这个问题。
Roo 需要新界面,其他东西(其他一些 gem)正在使用旧界面 - 所以这些答案中的大多数都不起作用(无法降低 rubyzip 的版本,不推荐使用 rubyzip2,不需要 zip/zip在我的项目中)。
对我有用的是 cassio-s-cabral 对rubyzip github页面的回答。
gem 'rubyzip', '>= 1.0.0' # 将加载新的 rubyzip 版本 gem 'zip-zip' # 将加载旧 rubyzip API 的兼容性。
我遇到了同样的问题:在“需要'zip/zip'”代码上抛出错误,这篇文章的解决方案也没有帮助。
经过长时间的研究,我发现问题在于我的“require 'zip/zip'”语句是在单独的
lib/exporters/package_exporter.rb
文件,并且由于某种原因,默认情况下,生产中的“lib”文件夹中不处理“require”语句。
当我将“需要'zip/zip'”移到我的开头时
app/controllers/packages_controller.rb
问题解决了!
我在 active_support 上遇到了类似的问题,只是将“zip”gem 添加到我的 Gemfile 中,它运行良好
我正在使用rubyzip2 gem 来解决这个问题
gem 'rubyzip2'
对我有用的是安装 2 个 gem:
gem install rubyzip
gem install zip
并在脚本中放置
require 'rubygems'
require 'zip/zip'
在他们的github 页面中解释了要做什么。
Rubyzip 界面变了!!!无需删除类名中的“zip/zip”和 Zip 前缀。
如果您对任何需要旧版本 rubyzip 的第三方 gem 有疑问,您可以使用下一个解决方法:
gem 'rubyzip', '>= 1.0.0' # will load new rubyzip version
gem 'zip-zip' # will load compatibility for old rubyzip API.