首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取模块名称的错误“NameError (uninitialized constant Quiz::Quizmodules

获取模块名称的错误“NameError (uninitialized constant Quiz::Quizmodules
EN

Stack Overflow用户
提问于 2016-10-20 15:07:47
回答 1查看 299关注 0票数 0

我有如下代码。

代码语言:javascript
复制
model/quiz.rb
class quiz
  include Quizmodule

  def self.a
     module_methode(a,b)
  end
end

lib/quizmodule.rb
module Quizmodule
  def module_methode(a,b)
     render(jason: {quiz: a})
  end
end

当我尝试访问model方法中的模块方法时。它给出了这个错误

代码语言:javascript
复制
NameError (uninitialized constant Quiz::Quizmodule

帮我解决这个问题。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-20 15:08:23

类不能是include%d。可以包含的是模块。

代码语言:javascript
复制
module Quizmodule # <======== not class
  def module_methode(a,b)
     render(jason: {quiz: a})
  end
end

由于这是一个拼写错误,并且您没有尝试包含类,因此将您的模块从lib移到models/concern

附注:你的代码有许多问题,它是非常规的,不会像你“打算”的那样工作。

  1. class quiz -类名应该以大写letter
  2. def self.a; module_methode(a,b); end开头-它将失败并返回extend Quizmodule)
  3. module_methode(a,b) (为了克服这个问题,您需要在self.a中使用undefined method module_methode for class:quiz -您正在使用ab,但永远不要将它们传递给a方法(尽管它们可能来自其他一些类级方法或其他方法)
  4. in Quizmodule#module_methode您正在传递两个参数,但只使用了一个。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40147670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档