Ruby on rails 使用database_cleaner、mongoid和active_admin会导致规范在ActiveRecord::ConnectionNotEstablished的情况下失败

Ruby on rails 使用database_cleaner、mongoid和active_admin会导致规范在ActiveRecord::ConnectionNotEstablished的情况下失败,ruby-on-rails,rspec,mongoid,activeadmin,Ruby On Rails,Rspec,Mongoid,Activeadmin,我有一个使用mongoid、database_cleaner和rspec的现有项目。我尝试使用添加活动的\ u admin。ActiveAdmin假定它在ActiveRecord项目中,最具体的是通过它对meta_搜索gem的依赖 当我运行我的规范时,它们都会失败,并出现以下错误: Failure/Error: Unable to find matching line from backtrace ActiveRecord::ConnectionNotEstablished: ActiveR

我有一个使用mongoid、database_cleaner和rspec的现有项目。我尝试使用添加活动的\ u admin。ActiveAdmin假定它在ActiveRecord项目中,最具体的是通过它对meta_搜索gem的依赖

当我运行我的规范时,它们都会失败,并出现以下错误:

Failure/Error: Unable to find matching line from backtrace
ActiveRecord::ConnectionNotEstablished:
  ActiveRecord::ConnectionNotEstablished
# ./spec/support/database_cleaner.rb:12:in `block (2 levels) in <top (required)>'

[从问题中移出]

似乎database_cleaner试图自动检测数据库中可用的ORM

这可以通过更改
spec/support/database_cleaner.rb
文件来预防:

RSpec.configure do |config|
  config.before(:suite) do
    DatabaseCleaner[:mongoid].strategy = :truncation
  end
end
在中调用
[]
方法将覆盖自动检测,从而不再添加ActiveRecord


另一个解决方法是使用sqlite3配置重新添加
config/database.yml
文件,应用程序的其余部分将忽略该配置。谢天谢地,这是没有必要的。

你应该把你的解决方案写在答案里,然后接受它;这是首选的流程。@FélixSaparelli我很愿意,但遗憾的是,我需要更多的积分才能做到这一点。请随意复制粘贴我的解决方案=D@dznz:据我所知,没有代表要求回答您自己的问题;只有一段等待时间。当然,你是对的。我只是一个很不耐烦的人
RSpec.configure do |config|
  config.before(:suite) do
    DatabaseCleaner[:mongoid].strategy = :truncation
  end
end