0

我有一个动态生成的嵌套命名空间,如下所示:

class A
  class B
    class C
      ...
    end
  end
end

我可以通过C手动访问类A::B::C,所以它存在,所以我的生成器工作。但是Object.const_get "A::B::C"会引发“错误的常量名称”错误。我可以以某种方式动态访问它而无需繁琐的循环吗?

4

1 回答 1

3

没有循环?没有把握。

这是我对此的解决方案,但它确实会遍历您的姓名:

class A
  class B
    class C
    end
  end
end

c = "A::B::C".split("::").inject(Object) { |n,c| n.const_get c }
p c

A::B::C

在这里你可以看到它在行动

于 2012-10-31T16:34:33.643 回答