执行rails db migrate遇config.eager_load为nil错误,求解决方案
解决Rails db:migrate时config.eager_load为nil的错误
别急,这个问题的根源不是环境变量没设对,而是你的Rails环境配置文件里没有正确设置config.eager_load的值。Rails 4及以后的版本要求这个参数必须明确设为true或false,不能是nil。
你可以按照以下步骤操作:
- 打开项目里的环境配置文件,比如开发环境对应
config/environments/development.rb,生产环境对应config/environments/production.rb,测试环境对应config/environments/test.rb。 - 在文件里找到
config.eager_load这一行(如果没有就新增一行),把它的值改成对应的布尔值:- 开发环境:设置为
config.eager_load = false(开发模式下不需要预加载所有代码,方便修改后热重载) - 生产环境:设置为
config.eager_load = true(生产环境预加载所有代码能提升运行性能) - 测试环境:通常设置为
config.eager_load = false即可
- 开发环境:设置为
- 保存修改后的配置文件,然后重新运行
rails db:migrate命令试试
之前你设置RAILS_ENV的操作只是指定了运行环境,但没解决配置文件里的参数问题,所以才没效果。按上面的步骤调整配置后应该就能正常执行迁移了。
内容的提问来源于stack exchange,提问作者Royal
相关产品推荐
相关产品推荐

