【发布时间】:2020-03-28 19:03:54
【问题描述】:
我需要访问 app/helpers/xhelper.rb 文件的 xhelper 模块中定义的方法。它需要在 lib 文件夹下的 x.rb 文件中访问。
app/helpers/xhelper.rb 文件如下所示:
module Xhelper
def method_to_be_used
p 'ok'
end
end
lib/x.rb 文件如下所示
require 'xhelper'
class X
include Xhelper
def x
method_to_be_used
end
end
我得到以下错误: 无方法错误: X:Class 的未定义方法“method_to_be_used”
【问题讨论】:
-
此代码甚至不是有效的 ruby。 'xhelper' 不是常量,因为它不是以大写字母开头。你可能会认为我在这里分心,这只是你为这个问题输入的代码,但它对于 NoMethodErrors 非常重要,99% 的时间都是由程序员的草率引起的。当您只是为实际代码创建一个糟糕的替代品时,我们根本没有机会发现实际问题。
-
@max 固定模块名称
-
它仍然无法重现。
require 'xhelper'实际上应该引发错误,除非文件位于同一目录中。
标签: ruby-on-rails ruby