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吗?
在 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?(反问)
| 归档时间: |
|
| 查看次数: |
897 次 |
| 最近记录: |