I'm upgrading my Rails app from v5 to v6. The files are structured as:
lib
|- container
|- my_module_a
| |- my_class.rb
| |- class_two.rb
|- my_module_b
my_module directory has no files in it, only my_module_a
and my_module_b
directories.
class_one.rb's contents:
module MyModuleA
class MyClass
# definitions...
end
end
config/application.rb has:
config.eager_load_paths += %W[
#{config.root}/lib/container
#{config.root}/lib/container/my_module_a
]
bin/rails zeitwerk:check
prints All is good!
However, when running the rails server
and it reaches the call of the MyClass
class
obj = Container::MyModule::MyClass.new(...)
it prints
uninitialized constant Container::MyModuleA