启动Rails控制台报错:undefined method `load_defaults'
解决Rails控制台启动时的
undefined method 'load_defaults'错误 嘿,这个错误我碰到过好几次了,本质原因很简单——你的Rails版本不支持load_defaults这个方法。这个方法是Rails 5.1才正式引入的,如果你的项目用的是Rails 5.0或者更早的版本,在config/application.rb里写config.load_defaults肯定会触发这个NoMethodError。
下面给你两个可行的解决办法,看你需求选:
办法1:根据当前Rails版本调整配置
直接打开项目根目录下的config/application.rb,找到这一行:
config.load_defaults 6.0 # 或者你写的其他版本号
如果你的Rails版本低于5.1,直接删掉这一行就行。要是需要设置项目默认配置,换成对应版本的写法,比如:
# 举几个常用配置的例子 config.time_zone = 'UTC' config.i18n.default_locale = :en config.active_record.default_timezone = :utc
办法2:升级Rails版本到支持load_defaults的版本
如果你的项目允许升级,建议直接升到Rails 5.1或更高(比如5.2、6.x系列都很稳定),步骤也不复杂:
- 打开
Gemfile,把rails的版本改成目标版本:gem 'rails', '~> 5.1.7' # 选一个稳定的5.1版本,或者直接选6.x - 执行bundle更新:
bundle update rails - 跑一下数据库迁移(版本升级可能会带一些必要的迁移文件):
rails db:migrate - 再试启动控制台:
rails console
对了,要是不确定自己当前用的Rails版本,在项目根目录执行这个命令就能看到:
rails --version
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

