Rails 4环境下无法引入mongo gem问题求助
我之前在Rails项目里也碰到过类似的gem加载坑,给你几个实用的排查和解决方向:
确保用Bundler启动控制台
直接跑rails console可能会调用系统全局的gem环境,而非项目Gemfile管理的依赖。试试用bundle exec rails console启动控制台,再执行require 'mongo',这是最常见的解决办法。验证bundle install是否真的成功
检查项目根目录的Gemfile.lock文件,执行命令:cat Gemfile.lock | grep mongo如果没出现类似
mongo (2.x.x)的条目,说明bundle install过程中可能有依赖冲突或网络问题导致安装失败。可以重新执行bundle install --verbose,查看详细报错信息,针对性解决依赖问题。手动触发Bundler的路径设置
如果启动控制台后还是加载失败,先在控制台里执行:require 'bundler/setup'这条命令会让Bundler把Gemfile中所有gem的路径添加到Ruby的
$LOAD_PATH里,之后再尝试require 'mongo'。排查文件命名冲突
检查项目目录下是否存在名为mongo.rb的文件,执行:find . -name "mongo.rb"如果有同名文件,Ruby会优先加载本地文件而非gem里的文件,直接导致加载失败。重命名这个本地文件就能解决。
确认版本兼容性
验证你的Ruby版本与mongo 2.4系列是否兼容:mongo 2.4要求Ruby 2.0及以上版本,如果你用的是更低的Ruby版本,大概率会出问题。可以执行ruby -v查看版本,或者尝试调整gem版本,比如在Gemfile里改成gem 'mongo', '~> 2.3'后重新执行bundle install。
内容的提问来源于stack exchange,提问作者max pleaner

