You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Ruby on Rails到Render平台遇LoadError:无法加载database_cleaner/active_record

解决Render部署Rails生产环境database_cleaner加载错误
  • 问题根源:database_cleaner这类gem一般只在开发/测试环境用来清理数据库,你的Gemfile大概率把它放在了development或test分组里,导致生产环境没安装这个gem,但代码里又在生产环境触发了它的加载,所以报错。

  • 具体修复步骤:

    1. 打开项目根目录的Gemfile,找到database_cleaner-active_record相关配置:
      # 常见错误写法:只在开发/测试组引入
      group :development, :test do
        gem 'database_cleaner-active_record'
      end
      
    2. 分两种情况处理:
      • 生产环境不需要database_cleaner(绝大多数场景):找到项目中调用database_cleaner的代码(比如初始化文件、测试辅助代码等),用环境判断包裹:
        if Rails.env.development? || Rails.env.test?
          require 'database_cleaner/active_record'
          # 其他database_cleaner配置代码
        end
        
        确保生产环境不会执行到这些代码。
      • 生产环境确实需要该gem(极少场景):把gem从分组里移出,或者添加到production组:
        # 直接全局引入,或添加到:production组
        gem 'database_cleaner-active_record'
        # 或者
        group :development, :test, :production do
          gem 'database_cleaner-active_record'
        end
        
    3. 修复后运行bundle install更新Gemfile.lock,提交这两个文件到版本库,重新触发Render的部署。
  • 额外排查点:检查config/application.rb、config/initializers下的文件,有没有不区分环境直接require 'database_cleaner/active_record'的代码,有的话加上环境判断即可。

内容的提问来源于stack exchange,提问作者Anastasia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 18:42:05