Rails 7.0 升级:使用 Zeitwerk 自动加载

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

从经典自动加载器升级到现在使用 zeitwerk 时,自动加载模块时遇到问题。

目前我的模块如下:

# app/lib/configuration/test_configuration
module TestConfiguration
  ....code here
end

在我的application.rb中我正在使用:

config.paths.add 'app/lib', eager_load: true

这会导致错误:

NameError: uninitialized constant Configuration::TestConfiguration

我知道这个模块在技术上是基于文件结构命名的,所以将其更改为

module Configuration::TestConfiguration
//
end

我仍然收到错误:

uninitialized constant Configuration

我还认为我需要将应用程序中的行更改为

config.eager_load_paths

并删除其中仍然存在的任何require,即:

require "#{Rails.root.join('app', 'lib', 'configuration', 'other_config')}"

感谢大家的帮助!

ruby-on-rails autoload ruby-on-rails-7 zeitwerk
1个回答
0
投票

应该是配置::测试配置

# app/lib/configuration/test_configuration
module Configuration::TestConfiguration
  ....code here
end
© www.soinside.com 2019 - 2024. All rights reserved.