我的代码如下。
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
帮我解决一下。 谢谢。
答案 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;。
class quiz
- 班级名称应以大写字母def self.a; module_methode(a,b); end
- 它会因undefined method module_methode for class:quiz
而失败(要克服它,您需要extend Quizmodule
)module_methode(a,b)
中self.a
- 您正在使用a
和b
,但从未将其传递给a
方法(尽管这些可能来自一些其他类级方法或其他)Quizmodule#module_methode
中您传递了两个参数,但只使用了一个。