【问题标题】:ActiveRecord::ConnectionNotEstablished: No connection pool for ActiveRecord::Base with mongoidActiveRecord::ConnectionNotEstablished: ActiveRecord::Base 与 mongoid 没有连接池
【发布时间】:2023-04-02 18:39:01
【问题描述】:

我有一个 Rails 4.2.8 应用程序,ruby 2.4.4 和 Mongo 数据库,使用 mongoid ODB。 我想使用 rspec 对此应用程序运行测试。最基本的测试给了我这个错误: ActiveRecord::ConnectionNotEstablished: No connection pool for ActiveRecord::Base

我对这个问题的研究使我得出了这些结论,但我不知道如何解决这个问题本身:

  • 为什么这里提到了活动记录,而它不在我的 gemfile 中?也许另一个 gem 在某个时候正在加载它,但我怎样才能摆脱这个问题?
  • 我的 application.yml 和 mongoid.yml 文件配置正确。我可以RAILS_ENV=TEST rails console 也可以查询文档。
  • 看起来 rails 进入了 file 中的条件行 15。那么 ActiveRecord 是如何以及为什么会在某个时候加载的呢?

非常感谢您的帮助,因为我不知道下一步该做什么......

【问题讨论】:

  • 我猜有些 gem 正在尝试使用 ActiveRecord,您需要知道 gem 正在做什么并检查文档或联系开发人员。检查gemfile.lock,可能列在那里。
  • 活动记录是连接数据库和更新模型的rails模块。我不确定运行控制台是否证明您的应用程序连接到数据库。你可以检查这个线程来测试stackoverflow.com/questions/30170025/…
  • 我可以在测试环境的控制台中查询文档...
  • @arieljuod 我怎么知道是哪个宝石呢?我在 gemfile.lock 中看到的唯一活动记录位于 rails (4.2.8)
  • 检查这个问题stackoverflow.com/questions/19078044/…,希望对您有帮助

标签: ruby-on-rails activerecord rspec mongoid rspec-rails


【解决方案1】:

好的,所以我不知道是谁在我的应用程序中加载 ActiveRecord,但我在 rails_helper.rb 中手动卸载它:

Object.send(:remove_const, :ActiveRecord)
# Make sure it is above this
require 'rspec/rails'

【讨论】:

    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2012-04-05
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多