我正在尝试以编程方式获取常量(例如类),但只想查看特定命名空间中定义的常量。但是,const_get
在搜索常量时会冒泡到更高的命名空间。例如:
module Foo
class Bar
end
end
class Quux
end
如果您随后要求Foo
返回常量"Bar"
,它将返回正确的类。
Foo.const_get('Bar')
#=> Foo::Bar
但是,如果您要求它"Quux"
,它会冒泡它的搜索路径并找到顶级 Quux:
Foo.const_get('Quux')
#=> Quux
有没有办法让它只const_get
在被调用的模块中搜索?