[英]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.