2012-05-18 2 views
5

레일 3.2.3. 내 autoload 경로에 /lib있는 레일 애플 리케이션이 있습니다. 내 라이브러리 파일 중 하나에 다음과 같은 파일이 필요합니다.자동로드 된 라이브러리 파일에 필요한 라이브러리 파일의 강제 재로드

Dir[Rails.root.join("lib/foo/*.rb")].each { |f| require f } 

개발 중에 파일을 변경하면 파일이 다시로드되지 않습니다. 예를 들어 /lib/foo/bar.rb을 수정하면 서버를 다시 시작해야 변경 사항을 볼 수 있습니다. 누구든지 방법을 제안 할 수 있도록 각 요청에 적절하게 다시로드됩니까?

답변

3

당신이 당신의 자동로드 경로에 해당 파일이있는 경우 :

config.autoload_paths += %W(#{config.root}/lib) 

을 다음 당신이 그들을 필요로 할 필요가 없습니다. this으로 해 보셨습니까?

+1

당신은 뒤에 괄호를! – Excalibur

3

require 레일의 자동 로딩 시스템에서는 이상하게 작동하지 않습니다.

require_dependency 꽤 많은 일을하지만로드 된 상수가 요청이 끝날 때 언로드되도록 루프에 자동 로딩 시스템을 유지합니다. 파일이 레일의 자동로드 경로에 있는지 확인해야 할 수도 있습니다.

+0

일단'require'를 제거하면 모듈 파일이 변경되면 자동으로 다시로드됩니다. 감사합니다 @ Frederick Cheung –

0

라인을 추가하거나 주석을 해제해야합니다.

config.autoload_paths + = %의 W (# {config.root}/lib에) 설정에서 응용 프로그램 클래스에

/application.rb

관련 문제