获取错误“模块名称的NameError(未初始化的常量测验::测验模块”)

时间:2016-10-20 07:07:47

标签: ruby-on-rails module

我的代码如下。

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

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

NameError (uninitialized constant Quiz::Quizmodule

帮我解决一下。 谢谢。

1 个答案:

答案 0 :(得分:0)

班级不能是include d。您可以包含的是模块。

module Quizmodule # <======== not class
  def module_methode(a,b)
     render(jason: {quiz: a})
  end
end

由于这是一个错字,并且您没有尝试包含课程,请将您的模块从lib移至models/concern

P.S。你的代码有很多问题,它是非传统的,不会像你打算那样工作&#34;。

  1. class quiz - 班级名称应以大写字母
  2. 开头
  3. def self.a; module_methode(a,b); end - 它会因undefined method module_methode for class:quiz而失败(要克服它,您需要extend Quizmodule
  4. module_methode(a,b)
  5. self.a - 您正在使用ab,但从未将其传递给a方法(尽管这些可能来自一些其他类级方法或其他)
  6. Quizmodule#module_methode中您传递了两个参数,但只使用了一个。