Zeitwerk?Ruby on Rails ::Domains::Article => /app/domains/domains/ariticle.rb

huangapple go评论86阅读模式
英文:

Zeitwerk? Ruby on Rails ::Domains::Article => /app/domains/domains/ariticle.rb

问题

我有存储在以下路径的领域逻辑代码

  1. app/domains/domains/article.rb

类是

  1. class Domains::Article
  2. end

让我感到困扰的是正确的加载结构是 app/domains/domains/article.rb 而不是 app/domains/article.rb

有人知道正确的目录结构和相关的autoload_path是什么吗?

谢谢!

-daniel

英文:

I have domain logic code stored in

  1. app/domains/domains/article.rb

The class is

  1. class Domains::Article
  2. end

It bothers me that the proper loading structure is app/domains/domains/article.rb and not app/domains/article.rb

Does anyone know what the proper directory structure and related autoload_path is?

Thank you!

-daniel

答案1

得分: 1

可以通过以下方式完成:

  1. # config/initializers/autoloading.rb
  2. module Domains
  3. end
  4. Rails.autoloaders.main.push_dir(
  5. "#{Rails.root}/app/domains",
  6. namespace: Domains
  7. )
  8. # 下面的额外代码在 Rails < 7.1 中是必需的。
  9. domains_dir = "#{Rails.root}/app/domains" # 必须是字符串
  10. ActiveSupport::Dependencies.autoload_paths.delete(domains_dir)
  11. Rails.application.config.watchable_dirs[domains_dir] = [:rb]
英文:

It can be accomplished this way:

  1. # config/initializers/autoloading.rb
  2. module Domains
  3. end
  4. Rails.autoloaders.main.push_dir(
  5. &quot;#{Rails.root}/app/domains&quot;,
  6. namespace: Domains
  7. )
  8. # The next additional lines are necessary in Rails &lt; 7.1.
  9. domains_dir = &quot;#{Rails.root}/app/domains&quot; # has to be a string
  10. ActiveSupport::Dependencies.autoload_paths.delete(domains_dir)
  11. Rails.application.config.watchable_dirs[domains_dir] = [:rb]

huangapple
  • 本文由 发表于 2023年5月15日 05:20:30
  • 转载请务必保留本文链接:https://go.coder-hub.com/76249735.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定