启动Ruby on Rails新建项目出现StringIO类父类不匹配TypeError报错求助
问题原因
该superclass mismatch for class StringIO (TypeError)报错是Ruby 2.7.0版本与bootsnap 1.9.1版本的已知兼容冲突导致,加载psych库时StringIO类被重复定义、父类声明不一致触发类型错误。
解决方案
按优先级尝试以下操作:
方案1:清理bootsnap缓存
- 进入你的Rails项目根目录,执行命令删除本地缓存:
rm -rf tmp/cache/bootsnap* - 重启Rails服务验证是否恢复
方案2:升级bootsnap到兼容版本
- 打开项目根目录的
Gemfile,修改bootsnap的版本限定:gem 'bootsnap', '>= 1.10.0', require: false - 执行命令更新依赖:
bundle update bootsnap - 重启Rails服务验证
方案3:临时禁用bootsnap(快速验证)
- 打开项目
config/boot.rb文件,注释掉以下代码行:# require 'bootsnap/setup' - 重启服务即可正常启动,后续升级Ruby版本后可恢复bootsnap启用
补充建议
尽量不要使用操作系统默认安装的Ruby环境,推荐使用rbenv或RVM管理独立的Ruby运行环境,可避免系统级依赖冲突、权限不足等常见问题。
内容的提问来源于stack exchange,提问作者Иван Гречка
相关产品推荐
相关产品推荐

