我有一个名为Plants
的模块,其中包含const_missing
方法和一个名为Sunflower
的类。当我调用未定义的常量时,不调用模块内的const_missing方法。而是调用Object
类中的const_missing。有没有办法让模块内的const_missing被触发?
module Plants
def self.const_missing(name)
puts name
end
class Sunflower
def some_method
Grass
end
end
end
obj = Plants::Sunflower.new
obj.some_method
提前致谢! :)
答案 0 :(得分:3)
module Plants
def const_missing(name)
puts name
end
class Sunflower
extend Plants
def some_method
Grass
end
end
end
答案 1 :(得分:1)
有两种方法:
将您的电话改为
def some_method
::Plants::Grass
end
确保您正在调用Plants :: Grass
或将const_missing移动到向日葵类