ruby-on-rails 如何从ROR中的eager_loading中排除lib/ folder中的特定文件

8zzbczxx  于 5个月前  发布在  Ruby
关注(0)|答案(1)|浏览(78)

在我的rails应用程序的lib/文件夹中,我有很多文件,我需要从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点中,我已经将其更改为从eager_load加载中排除iq_analytics.rb此文件,但这一行排除lib/ folder中的所有文件?
    还有别的办法吗
hmtdttj4

hmtdttj41#

Rails >= 7.1

您可以使用config.autoload_lib(ignore:)

# config/application.rb

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

字符串

Rails < 7.1并启用zeitwerk

# 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)

相关问题