2010-07-18 3 views
0

필자는 최근의 Rails 애플리케이션에서 부분 만 도우미 메서드로 렌더링하기로 결정했습니다. application_helper.rb 예를 들어Factor out application_helper

:

def render_header 
    render :partial => "partials/header" 
end 

가 나는 부분의 이름을 바꿀 경우에 내 코드가 조금 더 건조하거나 표시 부분있는 제어하기위한 추가 로직을 추가해야하는이 일을하고 있습니다.

이 단점은 application_helper.rb를 빠르게 팽창 시키는데,이 경우 application_helper.rb가 이미 빠르게 확장됩니다.

나는 application_helper를 깨는 가장 깨끗한 방법이 무엇인지 궁금합니다. 나는 lib /에 application_helpers 라이브러리를 만들고, 원하는 모든 도우미 유형 (예 : partial_helper.rb)에 다른 모듈을 포함시켜야한다고 생각했습니다.

그러나이 기능을 작동시키지 못했습니다. lib/application_helpers/partial_helper.rb에 파일을 저장하고 "ApplicationHelpers :: PartialHelper"모듈을 호출했습니다. 레일즈에 의해 자동으로로드 될 것이라고 생각했고, 뷰에서 "PartialHelper.render_header"를 수행 할 수 있다고 생각했지만, PartialHelper에서이 메소드가 정의되지 않았다는 오류가 발생했습니다.

또 다른 아이디어는 application_helper.rb에 도우미를 포함 시키거나 필요로하고 내보기에서 정상적으로 호출하는 것이지만 작동하지 않습니다.

아이디어/솔루션?

덕분에, 자크

답변

4

당신은 그것을 선택할 것입니다 app/helpers 및 레일의 모든 <whatever>_helper.rb 파일을 배치 할 수 있습니다. 예를 들어 partials_helper.rb 일 수 있습니다. 컨트롤러로 생성 된 애플리케이션 도우미 나 도우미에 국한되지 않습니다.

partials_helper.rb :

module PartialsHelper 
    def render_header 
    ... 
    end 
end