我想写一个方法,在这样的场景中执行我想要的输出:
class Bar
end
module Foo
class Bar
end
end
namespace(Bar, Foo)
def namespace(child, parent)
# return Foo::Bar
end
我能想到的最好的,使用ActiveSupport:
def namespace(child, parent)
"#{parent.name}::#{child.name}".constantize
end
有更好的方法吗?
答案 0 :(得分:0)
您可以使用Module::const_get
:
class Bar
end
module Foo
class Bar
end
end
def namespace(child, parent)
parent.const_get(child.name)
end
namespace(Bar, Foo) # => Foo::Bar