如何从 ROR 中的 eager_loading 中排除 lib/ 文件夹内的特定文件

问题描述 投票:0回答:1

在 lib/ 文件夹内的 Rails 应用程序中,我有很多文件,我需要从该 lib 文件夹中排除一个文件以使其成为

eager_loading
,而其余文件应为
eager_loading

我怎样才能实现这个目标?

  1. config.eager_load_paths += %W[#{config.root}/lib/]

    在第 1 点中,从 lib 文件夹加载所有文件,

  2. config.eager_load_paths -= %W[#{config.root}/lib/iq_analytics.rb]

    config.eager_load = true

    在第 2 点中,我已更改此设置以排除

    iq_analytics.rb
    此文件加载
    eager_load
    ,但这行排除 lib/ 文件夹中的所有文件?

还有其他办法吗?

ruby-on-rails config eager-loading
1个回答
0
投票

导轨 >= 7.1

你可以使用 config.autoload_lib(忽略:)

# config/application.rb

config.autoload_lib(ignore: %w(iq_analytics.rb))

导轨< 7.1 and zeitwerk enabled

# 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)
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.