我有如下代码。
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方法中的模块方法时。它给出了这个错误
NameError (uninitialized constant Quiz::Quizmodule帮我解决这个问题。谢谢。
发布于 2016-10-20 15:08:23
类不能是include%d。可以包含的是模块。
module Quizmodule # <======== not class
def module_methode(a,b)
render(jason: {quiz: a})
end
end由于这是一个拼写错误,并且您没有尝试包含类,因此将您的模块从lib移到models/concern。
附注:你的代码有许多问题,它是非常规的,不会像你“打算”的那样工作。
class quiz -类名应该以大写letterdef self.a; module_methode(a,b); end开头-它将失败并返回extend Quizmodule)module_methode(a,b) (为了克服这个问题,您需要在self.a中使用undefined method module_methode for class:quiz -您正在使用a和b,但永远不要将它们传递给a方法(尽管它们可能来自其他一些类级方法或其他方法)Quizmodule#module_methode您正在传递两个参数,但只使用了一个。https://stackoverflow.com/questions/40147670
复制相似问题