如何从lib目录中调用我的命名空间类

时间:2014-11-13 22:57:28

标签: ruby-on-rails ruby-on-rails-3.2

我的lib目录中有3个级别的课程,我试图调用但是我得到了一个未初始化的常量错误。我的类和目录结构如下所示:

文件名:lib / my_module / my_second_module / my_third_module / my_class.rb

module my_module
  module my_second_module
    module my_third_module
      class my_class
        def self.something
          do something...
        end
      end
    end
  end
end

我尝试使用rails控制台调用此类,但它返回'未初始化的常量my_module'。我运行此命令并收到此错误:

MyModule::MySecondModule::MyThirdModule::MyClass.something

此外,我还在config / application.rb

中包含以下内容
config.autoload_paths += Dir["#{config.root}/lib/my_module/**/"]

2 个答案:

答案 0 :(得分:0)

尝试::MyModule::MySecondModule::MyThirdModule::MyClass.something

答案 1 :(得分:0)

我通过使用另一种方法在lib文件夹中加载我的模块来修复我的问题。出于某种原因,我的方式没有加载我的lib文件:

config.to_prepare do
  Dir.glob(File.join(File.dirname(__FILE__), "../lib/my_module/**/*.rb")) do |c|
    Rails.configuration.cache_classes ? require(c) : load(c)
  end
end