You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级到Rails 6后运行rails命令报LoadError: cannot load such file -- zip/zip错误

问题根源

从报错回溯可以定位到,是项目中依赖的axlsx 1.3.6版本加载时触发的错误:旧版axlsx依赖rubyzip < 1.0的版本,而rubyzip 1.0及以上版本将原引入路径zip/zip重构为zip,升级Rails 6时rubyzip版本被同步升级到1.0+,导致旧版axlsx找不到对应依赖文件。

可用解决方案

  • 方案1(推荐):替换为社区维护的兼容版axlsx
    原axlsx已经停止维护,社区fork的兼容分支为caxlsx,直接修改Gemfile即可:
    # 替换原有gem 'axlsx'
    gem 'caxlsx'
    # 如果之前用了axlsx_rails,也替换为对应兼容版本
    gem 'caxlsx_rails'
    
    修改后执行bundle install即可。
  • 方案2:添加路径兼容补丁
    如果你暂时不想更换axlsx版本,可以新增兼容补丁:在config/initializers目录下新建zip_compatibility.rb文件,写入以下内容:
    require 'zip'
    # 给旧版axlsx提供兼容的旧路径指向
    Zip::Zip = Zip
    
  • 方案3(不推荐):锁定rubyzip旧版本
    在Gemfile中强制锁定rubyzip到0.9.x版本:
    gem 'rubyzip', '~> 0.9.9'
    
    该方案不推荐使用,旧版本rubyzip存在已知安全漏洞,且可能和其他依赖高版本rubyzip的gem冲突。

内容的提问来源于stack exchange,提问作者Ben Bagley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 18:45:03