提问人:ntonnelier 提问时间:8/9/2022 最后编辑:ntonnelier 更新时间:8/9/2022 访问量:392
Zeitwerk:将自定义命名空间添加到 /public 目录
Zeitwerk: add custom namespace to /public directory
问:
我有一个具有以下结构的应用程序:
- my_app
- bin
- config
- packages
- pack_name
- priv
- public
- service_one
- service_two
- other_pack_name
注意没有应用程序目录,因为我使用的是 packwerk
使用当前配置,我直接使用 和 常量访问服务。现在,我想要实现的是将它们设置为 和 。但这应该只对里面的文件强制执行。/public
ServiceOne
ServiceTwo
PackName::ServiceOne
PackName::ServiceTwo
/public
我怎样才能做到这一点?
这是我目前的配置:
# config/application.rb
module MyApp
class Application < Rails::Application
config.load_defaults 6.0
# packages
config.paths.add 'packages', glob: '*/{*,*/concerns}', eager_load: true
...
end
end
# config/initializers/zeitwerk.rb
Rails.autoloaders.each do |autoloader|
autoloader.inflector.inflect(
"my_wrapper" => "MyWrapper", # ActiveAdmin class
)
autoloader.ignore(Rails.root.join('packages/ops/admin'))
end
service_one.rb
应如下所示:
module PackName
class ServiceOne
end
end
编辑:我知道这将解决问题,但我想避免在文件夹内创建额外的目录/pack_name
/public
答: 暂无答案
评论
packwerk
ActiveJob::QueueAdapters
PackName