如果您有:如何以递归方式查找模块中的所有模块和类?
module A
class B
end
end
您可以通过A.constants找到B和相似的类。但是,在Ruby 1.9.3中,如果它位于另一个模块中,则不能获得B.在Ruby 1.8.7中,你可以。
module A
module Aa
class B
end
end
end
如何从A的第一级获得B?我想作为输出为常数,其中包括像B中的所有类的数组,但模块A内的任何地方,如果你确实有圆形的命名空间
你是什么意思,你不能得到乙?我可以使A :: Aa :: B.new,它的工作原理是 – megas 2012-03-24 00:51:40
'MyModule.constants.select {| c | Class === MyModule.const_get(c)}'为你工作? http://stackoverflow.com/questions/833125/find-classes-available-in-a-module – ScottJShea 2012-03-24 01:28:29
是的,你可以直接实例化它。但是,如何填充一个符号列表,其中列出了像B这样的类? Scott:这对Ruby 1.9.3不适用(对于Ruby 1.8.7而言)。由于某些原因,常量不包含模块。 – Jade 2012-03-24 15:22:41