如何在Rails中将目录加载黑名单?

Dmy*_*iak 8 ruby gem dependencies ruby-on-rails activeadmin

我想在运行测试时禁用ActiveAdmin.

所以我添加require: false到Gemfile并检查if defined?(ActiveAdmin)路由和初始化程序.

但是Rails仍然会加载模型形式,app/admin因此我得到的错误类似于/app/admin/admin_user.rb:1:in':uninitialized constant ActiveAdmin(NameError)`

app/admin目录"黑名单" 加载的最佳方法是什么?

Dmy*_*iak 8

# config/environments/test.rb

path_rejector = lambda { |s| s.include?("app/admin") }

# Remove the path from being loaded when Rails starts:
config.eager_load_paths = config.eager_load_paths.reject(&path_rejector)

# Remove the path from being lazily loaded
ActiveSupport::Dependencies.autoload_paths.reject!(&path_rejector)
Run Code Online (Sandbox Code Playgroud)