Ruby On Rails命令无法执行,遇LoadError与NoMethodError求助
解决Ruby on Rails命令执行报错(rubygems-bundler相关LoadError/NoMethodError)
我来帮你搞定这个Rails完全跑不起来的问题!从你给出的报错日志来看,根源是rubygems-bundler这个gem和当前环境里的Bundler版本不兼容,导致执行任何Rails/Ruby命令时都会触发加载失败或者方法不存在的错误。下面是具体的修复步骤:
修复步骤
- 首先,卸载或禁用
rubygems-bundler的noexec模式:# 先尝试直接卸载 gem uninstall rubygems-bundler # 如果卸载过程中也报错,就执行这个命令禁用noexec noexec --disable - 然后安装和当前Ruby/Rails版本兼容的Bundler版本:
# Ruby 2.6.3 + Rails 6.0.1搭配Bundler 2.1.4兼容性较好 gem install bundler -v 2.1.4 - 如果你用RVM管理环境,还需要重置下全局gemset的配置:
rvm gemset use ruby-2.6.3@global gem install rubygems-bundler --no-exec - 最后验证修复效果:
rails -v
问题原因解释
这个错误大多出现在RVM环境中,旧版本的rubygems-bundler(比如你用的1.4.5)会调用Bundler 2.x版本已经移除的plain_specs方法,同时加载rubygems-bundler/noexec文件时也会失败,这就导致所有依赖gem的命令(比如rails -v)都无法正常执行。通过卸载/禁用不兼容的组件、安装适配版本的Bundler就能解决这个问题。
内容的提问来源于stack exchange,提问作者Mohamed Emad Emsawy
相关产品推荐
相关产品推荐

