我希望能够使用子模块的方法和常量扩展模块。
如果我使用extend
,则会收到未定义的常量。
使它起作用的唯一方法是同时使用extend
和include
。我也尝试在子模块上使用self.method。
module Car
module Container
HOLA = 'Helloo!'
def testing
HOLA
end
end
include Container
extend Container
end
所以这两个都应该起作用:
Car.testing # Hello!
Car::HOLA # Hello!
我想这是代码的味道...,但是您知道还有什么其他方法可以使它起作用?
答案 0 :(得分:0)
根据共享的描述,您似乎想要访问some_other_class中的嵌套模块常量和方法。
这是帖子中提到的模块定义。
module Car
module Container
HOLA = 'Helloo!'
def testing
HOLA
end
end
end
现在假设,您想在某些类(例如Vehicle)中使用此方法
require 'car' #this is the module file since it is residing in some other file
class Vehicle
extend Car
def test
Car.testing
end
end
现在调用Vehicle.new.test将打印
"Helloo!"
希望有帮助!