在 lib/ 文件夹内的 Rails 应用程序中,我有很多文件,我需要从该 lib 文件夹中排除一个文件以使其成为
eager_loading
,而其余文件应为 eager_loading
。
我怎样才能实现这个目标?
config.eager_load_paths += %W[#{config.root}/lib/]
在第 1 点中,从 lib 文件夹加载所有文件,
config.eager_load_paths -= %W[#{config.root}/lib/iq_analytics.rb]
config.eager_load = true
在第 2 点中,我已更改此设置以排除
iq_analytics.rb
此文件加载 eager_load
,但这行排除 lib/ 文件夹中的所有文件?
还有其他办法吗?
你可以使用 config.autoload_lib(忽略:)
# config/application.rb
config.autoload_lib(ignore: %w(iq_analytics.rb))
# config/application.rb
lib_dir = Rails.root.join('lib')
config.autoload_paths << lib_dir.to_s
config.eager_load_paths << lib_dir.to_s
Rails.autoloaders.main.ignore(lib_dir.join('iq_analytics.rb').to_s)