鉴于我具有以下数据结构:
module A
module B
module C
class D
end
end
end
end
我想像这样在客户端代码中访问它:
C::D
而不是
A::B::C::D
一种解决方案是像这样在模块A中定义一个方法:
module A
def self.get_d
B::C::D
end
end
A.get_d
但是事实是C :: D在系统中已经存在的许多地方定义了。所以我需要向后兼容。我该如何解决这种情况?
答案 0 :(得分:0)
没有“嵌套模块”之类的东西。它只是分配给命名空间常量的模块。如果要分配给其他常量...只需将其分配给其他常量:
C::D = A::B::C::D
注意:这假设当前名称空间中存在一个名为C
的常量,并且它引用一个模块或类。但是,该假设已经存在于您的问题中。