2014-11-13 2 views
0

호출하려고하는 lib 디렉토리에서 3 레벨 깊이의 클래스가 있지만 초기화되지 않은 상수 오류가 발생합니다.lib 디렉토리에서 내 namespaced 클래스를 호출하는 방법

파일 이름 : 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 

내가 레일 콘솔을 사용하여이 클래스를 호출하기 위해 노력하고있어하지만 반환 '내 클래스와 디렉토리 구조는 다음과 같습니다 초기화되지 않은 상수 my_module './application.rb

config.autoload_paths += Dir["#{config.root}/lib/my_module/**/"] 

답변

0

보십시오 설정에서 다음

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

이 또한 내가했습니다 포함 :이 명령을 실행하고이 오류가 모듈을 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 
0

는 다른 방법을 사용하여 내 문제를 해결 ::MyModule::MySecondModule::MyThirdModule::MyClass.something

+0

첫 번째 모듈에 대해서는 여전히 불평하고 있습니다. - NameError : 초기화되지 않은 상수 MyModule –

관련 문제