可以使模块名称大写吗?

yu-*_*der 3 ruby ruby-on-rails

lib/modules/job/web.rb

module Modules
  module JOB
    class Web
      def self.type
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我用了 - Modules::JOB::Web.type

但我收到此错误 -

NameError: uninitialized constant Modules::JOB 
Did you mean?  Modules::Job
Run Code Online (Sandbox Code Playgroud)

有什么办法可以使用Modules::JOB吗?

max*_*max 7

在 Rails 中,您可以使用inflect.acronym为 IPAdress 或 HTTPClient 等不遵循正常驼峰命名约定的首字母缩略词设置特殊的屈折规则。

# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.acronym 'JOB'
end
Run Code Online (Sandbox Code Playgroud)

但从一开始,这是一个非常糟糕的主意。job不是首字母缩写词,它只是公然违反了最少惊喜原则以及神圣的 Ruby 命名约定

拥有一个名为“Modules”的模块也很愚蠢。围绕传达其实际目的的有意义的名称组织您的代码。

有什么作用Modules::JOB::Web?(反问)