1

는 A 컨트롤러에서 다음 왼쪽으로 두 가지 작업이 있습니다Rails 3에서 filter_access_to 문을 사용하지 않는 컨트롤러에 대한 작업에 액세스 할 수없는 이유는 무엇입니까? 내가 declarative_authorization을 사용하고 내가 가지고

filter_access_to :index, :new, :edit, :step, :create, :update, :destroy

. :show, :compare. 그러나 해당 작업 중 하나의 URL로 이동하면 로그인 화면으로 이동합니다.

왜 이런가요?

내가 남긴 액션이 아니어야합니다. 컨트롤러에 다른 필터가 없다는 것을 감안하면 로그인하지 않은 상태에서도 볼 수 있습니다 (어쩌면 ApplicationsController에서 상속받은 것 제외)?

답변

3

declarative_authorization ... thats Devise (또는 인증 메커니즘이 무엇이든간에) 도메인과 관련이 없습니다. 대신, 사용자가 건너 뛴 조치에 대한 예외를 포함하도록 인증되었는지 점검하는 before_filter를 수정하십시오.

예 : before_filter :authenticate_user!에서 before_filter :authenticate_user!, :except=>[:public_action, :other_public_action]으로 변경하십시오.

또한 응용 프로그램 컨트롤러 내에 before_filter가 설정된 경우 예외를 적용하려는 컨트롤러에서 무시하고 mod를 만들 수 있습니다.