升级Ruby至3.2.2后无法启动Rails Console:缺失save-history.rb
问题解决:Ruby 3.2.2升级后Rails Console启动失败(找不到save-history.rb)
问题根源
从错误栈可明确:本地IRB的历史保存配置指向了一个不存在的文件/Users/my-user-name/src/ext/save-history.rb。Heroku环境无此自定义IRB配置,因此控制台能正常启动。该问题与Rails项目本身、Bundler或Ruby版本无关,属于本地IRB全局配置错误。
解决步骤
1. 检查本地IRB配置文件
查看以下常见路径是否存在自定义IRB配置文件:
~/.irbrc~/.config/irb/config.rb~/.rubyrc
打开文件后,查找是否包含类似代码:
require '/Users/my-user-name/src/ext/save-history.rb' # 或者 IRB.conf[:SAVE_HISTORY] = '/Users/my-user-name/src/ext/save-history.rb'
2. 临时验证配置问题
将找到的IRB配置文件重命名(例如改为~/.irbrc.bak),然后重新执行:
rails console
若控制台能正常启动,即可确认是该配置文件导致的问题。
3. 修复IRB配置
根据情况调整配置:
- 若需开启IRB历史保存,只需设置保存的历史条数(Ruby会默认处理存储位置,无需指定文件路径):
IRB.conf[:SAVE_HISTORY] = 1000 # 保存最近1000条命令 - 若之前是手动加载自定义历史脚本,确认
save-history.rb文件是否存在,不存在则删除对应的require语句。
4. 重置rbenv环境(可选)
修改配置后仍有问题时,执行以下命令重置rbenv环境缓存:
rbenv rehash
内容的提问来源于stack exchange,提问作者Jaco Pretorius
相关产品推荐
相关产品推荐

