[英]Ruby Module Include Question
我在lib /文件夹中有一个CommonFunctions模块。 我有一个问题模型,其中包括CommonFunctions模块。 现在,我尝试访问CommonFunctions的收藏夹功能,例如Question.favorite。 但是我收到了NoMethodError。 我已经包含了代码。 谁能告诉我我在哪里做错了
错误
NoMethodError: undefined method `favorite' for Class:0x00000100e11508
内部lib / CommonFunctions.rb
module CommonFunctions
def favorite(object_id)
end
end
内部应用程序/模型/Question.rb
require 'lib/CommonFunctions.rb'
class Question
extend CommonFunctions
end
我正在从脚本/控制台执行以下代码
Question.favorite(1)
谢谢
您的代码是正确的。 确保已在控制台中加载了当前版本的类(尝试reload!
)。
附带说明:如果将CommonFunctions.rb重命名为common_functions.rb,它将由rails自动加载,并且不需要require。
当您希望模块方法是类方法时,它是一个实例方法。 使用下面的代码代替
module CommonFunctions
def self.favorite(object_id)
end
end
使用单词“ self”将方法定义为类方法(或静态方法)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.