2012-03-02 2 views
0

실행중인 액션이있는 뷰를 렌더링하려고합니다. 기본적으로 모든 단일 페이지에 표시해야하는 "예정된 예약"이 있습니다. 사용자가 무슨 일이 일어나고 있는지 전반적인 관점을 파악할 수 있도록 앞으로 일어날 일을 간략히 살펴 보겠습니다.컨트롤러 렌더링 액션

내가 계획 한 내용은 특정 동작에 대한 캐싱 메커니즘을 가지고 있기 때문에 레이아웃에서 렌더링했을 때 가장 빠를 것입니다.

이것이 가능합니까? 렌더링 템플릿 및 렌더링 부분은 해당 뷰에서 액세스 할 수있는 인스턴스 변수를 사용할 수 없거나 단순히 원하는 것을 수행하지 못한다는 것을 의미하는 동작을 호출하지 않습니다.

답변

2

흠, 내 질문을 이해한다면 before_filter을 사용하고 싶다고 생각합니다. before_filterbefore_filter이 등록 된 모든 컨트롤러 또는 해당 하위 항목의 각 동작 전에 실행되는 콜백입니다.

컨트롤러의 모든 동작 전에 실제로 호출 할 함수를 원한다면이 작업을 수행하는 것이 좋습니다 (ApplicationController). ActionController을 상속 한 모든 컨트롤러에서 모든 동작에 대해 실행됩니다.

class ApplicationController < ActionController::Base 
    before_filter :do_something 

    def do_something 
    WHATEVER IT IS YOU WANT TO DO INCLUDING SETTING INSTANCE VARIABLES 
    end 
end 

그런 다음 당신은 do_something이 모든 행동 이전에 호출 될 것을 guarentee 수 있습니다.

희망이 도움이됩니다.

+0

이것은 다른 프레임 워크에서했던 것입니다. 레일즈에서이 작업을 수행하는 것을 알지 못했습니다. 그것을 시도해보십시오. – Kezzer