2011-03-07 5 views
10

내 응용 프로그램의 lib 디렉토리에있는 모듈의 함수에 액세스하려고 시도하고 있습니다. (lib 디렉토리/search.rb)lib 디렉토리의 모듈에 액세스하기 (Ruby on rails)

실제로에서 작업 검색 우편 번호를 얻기 위해 노력하고 있어요 : http://joshhuckabee.com/simple-zip-code-perimeter-search-rails

lib 디렉토리 나는 zip_code_perimeter_search를 호출하는 것을 시도하고있다

module Search 
    def zip_code_perimeter_search(zip, radius) 
    #code 
    end 
end 

/search.rb 기능을 레일 콘솔에서 또는 내 컨트롤러에서 두 번 내가 정의되지 않은 방법을 얻을. 어떤 아이디어? 콘솔/컨트롤러에서

답변

15

:

는 레일 3하지 자동로드, 사용자의 설정/application.rb 파일에, 당신이 할 수 않는 경우
include Search 
zip_code_perimeter_search(zip, radius) 

:

# Custom directories with classes and modules you want to be autoloadable. 
config.autoload_paths += Dir["#{config.root}/lib/**/"] 
+1

감사의 코드를 평가합니다. 레일 3은 자동로드를하지 않는다고 생각합니다. –

+0

답변을 수정했습니다. application.rb 파일에서로드 디렉토리 설정을 구성하면 파일을 '요구'하지 않아도됩니다. – Shreyas

+0

+1 감사합니다. – ecoologic

2

모듈 메소드를 직접 호출하려면 클래스에 포함시킨 다음 클래스 인스턴스에서 호출하십시오.

Class call_module_method 
    include Search 
end 

지금

call_module_method.new.zip_code_perimeter_search(zip, radius) 

나는 또한이 lib 디렉토리/검색에 필요한해야했다, 방법 내부 zip_code_perimeter_search(zip, radius)