繁体   English   中英

Ruby模块包含问题

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

谢谢


这与我如何从Rails模型中正确包含模块和调用模块函数重复

您的代码是正确的。 确保已在控制台中加载了当前版本的类(尝试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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM