我有一个为它定义了常量的类。然后我定义了一个访问该类常量的类方法。这工作正常。一个例子:
#! /usr/bin/env ruby
class NonInstantiableClass
Const = "hello, world!"
class << self
def shout_my_constant
puts Const.upcase
end
end
end
NonInstantiableClass.shout_my_constant
我的问题是在尝试将此类方法移出到外部模块时出现,如下所示:
#! /usr/bin/env ruby
module CommonMethods
def shout_my_constant
puts Const.upcase
end
end
class NonInstantiableClass
Const = "hello, world!"
class << self
include CommonMethods
end
end
NonInstantiableClass.shout_my_constant
Ruby 将该方法解释为从模块而不是类请求一个常量:
line 5:in `shout_my_constant': uninitialized constant CommonMethods::Const (NameError)
那么,小伙伴们有什么妙招让方法访问类常量呢?非常感谢。