2010-12-14 4 views
1

나는 어리석은 짓을해야합니다. 이것이 작동하지 않는 이유에 대한 아이디어. 아래 설정으로 컨트롤러에 요청할 때 인증하라는 메시지가 나타납니다.before_filter : except는 작동하지 않는 것 같습니다.

class ApplicationController < ActionController::Base 

before_filter :auth, :except => [:aboutus] 

인증 방법은 다음과 같습니다. 그것은

#Simple HTTP Auth during development 
    def auth 
    authenticate_or_request_with_http_basic do |username, password| 
     username == "REDACTED" && password == "REDACTED" 
    end 
    end 

감사

+0

'aboutus '는 컨트롤러인가 액션인가? – Zabba

+0

죄송합니다. aboutus가 앱 컨트롤러의 다른 컨트롤러가 아니라는 점을 분명히해야했습니다. Roadmaster는 내가 섞여 있었던 것을 발견했다. – Nick

답변

3

이 구성이와 ApplicationController의 "aboutus"조치에 적용된다 aboutus을 포함한 모든 컨트롤러에 잘 작동하지만 적용됩니다. 실제로 "aboutus"메쏘드/액션을 가진 컨트롤러에 before_filter 정의를 넣으려고 했습니까?

당신은와 ApplicationController이 넣을 수 있습니다 :

before_filter :auth 

다음의 aboutus 방법을 포함하는 컨트롤러 :

skip_before_filter :auth, :only => :aboutus 

당신이 코드와 모든 것을 반복하지 않는이 방법이 좋은 보인다.

+0

매력처럼 작동합니다. 컨트롤러가 업스트림 필터를 건너 뛰도록 강요 할 수 있다는 사실을 잊어 버렸습니다. 잘못된 점을 지적하고 수정 사항을 제안하는 데 정말로 감사드립니다. 감사 – Nick