Ruby中的模块加载问题

Ruby中的模块加载问题,ruby,class,module,object-oriented-analysis,Ruby,Class,Module,Object Oriented Analysis,我可以从一个文件而不是另一个文件访问模块的功能。这些文件都在同一目录中。我将尽力重新创建代码: 目录结构: init.rb lib/FileGenerator.rb lib/AutoConfig.rb lib/modules/helpers.rb lib/AutoConfig.rb #!/usr/bin/env ruby require 'filegenerator' require 'modules/helpers' class AutoConfig include Helpers

我可以从一个文件而不是另一个文件访问模块的功能。这些文件都在同一目录中。我将尽力重新创建代码:

目录结构:

init.rb
lib/FileGenerator.rb
lib/AutoConfig.rb
lib/modules/helpers.rb
lib/AutoConfig.rb

#!/usr/bin/env ruby

require 'filegenerator'
require 'modules/helpers'

class AutoConfig
  include Helpers

  def initialize
  end

  def myFunction
    myhelper #here's the module function
  end

  def mySecondFunction
    FileGenerator.generatorFunction # call to the FileGenerator
  end
end
lib/FileGenerator.rb

#!/usr/bin/env ruby

require 'modules/helpers'

class FileGenerator
  include Helpers

  def initialize
  end

  def self.generatorFunction
    myhelper #here's the module function that doesn't work
  end
end
lib/modules/helper.rb

#!/usr/bin/env ruby

module Helpers
    def myhelper
      #Do Stuff
    end
end
自动配置文件是应用程序的主要工作。当它调用
myhelper
模块函数时,它不会给我带来任何问题。自动配置部分调用
FileGenerator.generatorFunction

FileGenerator.generatorFunction
也包含相同的模块函数,但由于某种原因,当我运行程序时,出现以下错误:

filegenerator.rb:26:in `generatorFunction': undefined method `myhelper' for FileGenerator:Class (NoMethodError)

我已经做了好几个小时了,尝试了很多不同的组合,但都不知道哪里出了问题。任何帮助都将不胜感激。

generatorFunction
是一种类方法。它没有看到实例级方法。而
myhelper
(由
include Helpers
引入)是一个实例方法。要解决这个问题,您应该
扩展Helpers
。它的工作原理类似于include,但生成类方法

class FileGenerator
  extend Helpers

end

顺便说一句,名称
generatorFunction
不是ruby样式。您应该在snake_case(
generator_function
)中命名方法。

generatorFunction
是一种类方法。它没有看到实例级方法。而
myhelper
(由
include Helpers
引入)是一个实例方法。要解决这个问题,您应该
扩展Helpers
。它的工作原理类似于include,但生成类方法

class FileGenerator
  extend Helpers

end

顺便说一句,名称
generatorFunction
不是ruby样式。您应该在snake_case(
generator_function
)中命名方法。

很抱歉,这只是一个转录错误。更新了问题所在的问题!非常感谢,我会确保更改方法名称!对不起,那只是抄写中的一个错误。更新了问题所在的问题!非常感谢,我会确保更改方法名称!