尝试生成 mongoid.yml 失败 b/c database.yml 中指定的适配器不存在 gem

Trying to generate mongoid.yml fails b/c no gem exists for specified adapter in database.yml

我正在尝试生成 mongoid.yml 文件并收到以下错误。我已经删除了 database.yml。我怎样才能解决这个错误?

$ rails g mongoid:config            
/Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/application/configuration.rb:143:in `database_configuration': Cannot load `Rails.application.database_configuration`:
Could not load database configuration. No such file - ["config/database.yml"] (RuntimeError)
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/railtie.rb:122:in `block (2 levels) in <class:Railtie>'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:44:in `each'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/base.rb:324:in `<module:ActiveRecord>'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/base.rb:24:in `<top (required)>'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:338:in `active_record_configured?'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:259:in `disconnect_database'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:97:in `preload'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application.rb:125:in `run'
    from /Users/tomcaflisch/.rvm/gems/ruby-2.3.1/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>'
    from /Users/tomcaflisch/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/tomcaflisch/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from -e:1:in `<main>'

在您的 config/application.rb 中删除以下内容:

require 'rails/all'

具有以下内容:

require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
# require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
require "rails/test_unit/railtie"

这将禁用加载 active_record

那么您还需要删除或注释掉 config 目录下所有文件中所有出现的 config.active_record.*,其中包括 config/application.rb,位于 [=] 下的所有环境文件17=],位于 config/initializers/ 下的所有初始化器,等等

最后,您还需要删除 app/models 目录下所有基于 ApplicationRecord.

的模型