[英]Included Module method not found in class in Ruby
我的模块方法没有找到方法错误。 它们的定义如下:
module MyModule
def my_method
"stuff"
end
end
这个类是这样的:
class MyClass
include MyModule
def self.do_stuff
my_method
end
end
然后我试图这样称呼它:
MyClass.do_stuff
我越来越
undefined method 'my_method" for MyClass:Class
我也尝试过
self.my_method
在模块中,但没有运气。 我应该提到这是Rails应用程序中的香草红宝石类。 application.rb包含以下行
config.autoload_paths += %W(#{config.root}/lib)
在控制台中,我可以验证模块是否已加载。 有什么想法吗? 谢谢
您想使用扩展使方法成为类方法。
class MyClass
extend MyModule
def self.do_stuff
my_method
end
end
在模块module_function
函数定义为module_function
,它应该可以工作。
module MyModule
module_function
def my_method
"stuff"
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.