You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows10下用Cmder启动Rails服务器遇参数错误及版本告警

解决Rails 5.0.0 + Ruby 2.5在Windows Cmder中启动Server的错误与警告

你遇到的问题本质是Ruby版本与Rails版本不兼容导致的,咱们一步步拆解解决:

问题原因

  1. Fixnum/Bignum废弃警告:Ruby 2.5开始把FixnumBignum合并成了统一的Integer类,但你的Rails 5.0.0版本的activesupport库还在引用这两个已被废弃的常量,所以启动时会弹出警告。
  2. Rack应用参数错误:这个ArgumentError是版本不兼容的连锁反应——Ruby 2.5对部分方法的参数签名做了调整,而Rails 5.0.0的代码还沿用旧的调用方式,导致参数数量不匹配。

解决方案

方案一:降级Ruby到兼容版本

Rails 5.0.x官方推荐的Ruby版本是2.2.2~2.4.x,把Ruby降到2.4系列就能完美匹配:

  • 卸载当前的Ruby 2.5.x,安装Ruby 2.4.10(2.4系列的稳定终版)
  • 打开Cmder进入项目目录,运行bundle install重新安装所有依赖
  • 再次执行rails server,警告和错误都会消失,应用就能正常在http://localhost:3000启动了

方案二:升级Rails到兼容Ruby 2.5的补丁版

如果你不想换Ruby版本,可以升级Rails到5.0系列的最新稳定补丁版,它已经修复了Ruby 2.5的兼容性问题:

  1. 打开项目根目录的Gemfile,找到这一行:
    gem 'rails', '5.0.0'
    
    修改为:
    gem 'rails', '~> 5.0.7.2'
    
  2. 在Cmder里运行bundle update rails,等待依赖更新完成
  3. 执行rails server,此时废弃警告和参数错误都会被解决

如果想长期维护项目,也可以考虑升级到Rails 5.1或5.2版本(这些版本对Ruby 2.5支持更完善),但升级可能需要处理一些其他依赖的兼容问题,根据你的需求选择就好。

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

火山引擎 最新活动