것이 가능해야한다 : :authenticate_user!
이후before_filter 실행하는 여러 방법
before_filter :authenticate_user! || :authenticate_admin!
것이 가능해야한다 : :authenticate_user!
이후before_filter 실행하는 여러 방법
before_filter :authenticate_user! || :authenticate_admin!
before_filter {authenticate_user! || authenticate_admin!}
proc를 before_filter 메서드에 전달하면 질문에 제공 한 것과 가장 가까운 것이됩니다.
이 상징, :foo == true
는 유효하다. 따라서, 귀하의 예는 언제나 같은 시도 before_filter :authenticate_user!
동일시한다 (여기 셋업에 대한 확신을 ..) :
if method_defined?(:authenticate_user!)
before_filter :authenticate_user!
else
before_filter :authenticate_admin!
end
당신은 정의 된 두 가지 방법을 다음 authenticate_user!
을 실행하려면 경우 반환하는 false 일 경우 authenticate_admin!
을 실행하고/admin을 확인하고 before_filter
을 실행하여 authenticate!
메서드를 하나만 만듭니다.
': foo == true'는 사실이 아닙니다 (말장난은 아닙니다). irb로 확인하십시오. 아마도 ": foo는 참된 가치입니다."라고 말하고 싶었을 것입니다. – whitequark
before_filter :do_authentication
def do_authentication
authenticate_user! || authenticate_admin!
end
authenticate_user! || authenticate_admin! 이 작동하지 않습니다. 자원이 사용자가 아니라면 authenticate_admin을 확인하지 않을 것입니다! Unauthorized 상태가됩니다. –