최근에 모든 것을 폴더로 그룹화하여 코드를 구성 할 수있었습니다.
는 내가 app/
디렉토리에 컨트롤러의 내 그룹과 lib/
디렉토리에 내 모듈 모두에 대해 동일한 "그룹 이름"을 갖는 문제를했지만, 나는이 다음에 의해 해결할 수 있었다 :컨트롤러 코드를 수정 한 후 "NameError, uninitialized constant"오류가 발생했습니다.
Rails: Same name for a library module and a group of controllers?
을 나는 또한 당신이 lib
코드를 변경할 때마다 필자가 직접하는 레일 서버를 다시 시작해야한다는 것을 알고있다.
하지만 최근의 재편성 후 컨트롤러에서 코드를 변경할 때마다 다음 오류가 발생합니다 !!!
NameError at /admin
uninitialized constant Admin::PagerDuty
그리고이 문제를 해결하기 위해 간단히 서버를 다시 시작하십시오 !!
어떤 조언이 필요합니까?
EDIT : 구조 : 헬퍼 main_helper.rb
는 LIB pager_duty.rb
가 lib/admin
module Admin::MainHelper
require "admin/pager_duty.rb"
def pager_duty
pagerduty = Admin::PagerDuty.new()
@on_call = pagerduty.on_call()
@counts = pagerduty.open_incidents()
end
end
app/helpers/admin
하에
class Admin::MainController < ApplicationController
end
app/controllers/admin
하에
컨트롤러이다 main_controller.rb
691,363,210
module Admin
class PagerDuty
....
end
end
그래서 lib 클래스에 자동 로딩을 사용하고 있습니까? 또는 명시 적으로 자동 로딩없이 필요합니까? – jurglic
명시 적으로 질문을 수정하여 자세한 정보를 추가하겠습니다. – nevermind
Rails 기본 설정으로 개발 모드에서 서버를 다시 시작하지 않아도됩니다. lib 디렉토리에서 루비 파일을 자동으로로드하려면'config/application.rb' 설정 파일에 다음을 추가하십시오 :'config.autoload_paths + = % W (# {config.root}/lib)' –