2012-03-15 1 views
2

before_filter의 각 요청에 의해 두 가지 메소드가 실행됩니다. 나는이 방법들을 여러 장소에 넣으려고 시도했지만 lib 밑의 파일에서 그것들을 사용하는 것을 끝내었다. 이 방법을 적용 할 올바른 위치는 어디입니까? 이상적으로는 다른 컨트롤러를 포함하여 모든 컨트롤러에 자동으로 액세스 할 수있게하고 싶습니다.before_filter에 액세스 할 수있는 레일 앱 전체 방법에 대한 올바른 위치

답변

4

ApplicationController에는 여러 컨트롤러에서 사용하는 방법을 넣을 수 있습니다. 대부분의 요청이이 before_filter을 실행해야하는 경우 ApplicationController에도 넣으십시오. 그러면 skip_before_filter을 사용하여 특정 작업에 대한 필터를 무시할 수 있습니다. 예는 here입니다.

+0

컨트롤러가 요청을 처리하고 모델에서 데이터/기능을 사용할 수 있도록하는 것은 제 이해입니다. 컨트롤러의 비 요청 관련 메소드를 채워서 Rails의 기본 개념 중 하나를 고수하지 않으시겠습니까? –

+1

@franklinstine 코드가 요청 처리와 관련이 없으며 다른 곳에서 재사용 될 수 있다고 생각한다면 lib 폴더의 모듈이나 클래스에 넣고'ApplicationController'의'before_filter'에서 호출하십시오. – Baldrick

+0

@baldrick에게 감사 드려요. 지금 제가 가지고있는 것과 정확히 같습니다. 가장 좋은 옵션인지 잘 모르겠습니다. –

관련 문제