我有一种情况,我可以从一个文件而不是另一个文件访问模块的功能。这些文件都在同一个目录中。我将尽我所能重新创建代码:
目录结构:
init.rb
lib/FileGenerator.rb
lib/AutoConfig.rb
lib/modules/helpers.rb
库/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
库/文件生成器.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
AutoConfig 文件是应用程序的主要主力。当它调用myhelper
模块函数时,它不会给我带来任何问题。AutoConfig 中途调用FileGenerator.generatorFunction
.
也包含相同的FileGenerator.generatorFunction
模块功能,但由于某种原因,当我运行程序时出现以下错误:
filegenerator.rb:26:in `generatorFunction': undefined method `myhelper' for FileGenerator:Class (NoMethodError)
我已经在这几个小时尝试了许多不同的组合,但无法弄清楚我哪里出错了。任何帮助,将不胜感激。