2011-02-04 4 views
2

컨트롤러를 가지고 있지만 모델 클래스를 지원하지 않습니다. 내 능력 클래스에서비 RESTful 컨트롤러에서 Cancan 인증

class UserInviteController < ApplicationController 
    def process_email 
    authorize! :process_email, :abc 
    ... 
    method body 
    ... 
    end 
end 

, 나는

can :process_email, :abc if user.role == 1 

내가 Non RESTful Controllers authorization by Cancan이와 당신이 모두 권한을 부여 할 수있는 두 번째 인수로 기호를 통과 할 수 있다고 위키를 따라하고있다! 할 수 있습니다.

모델 클래스 또는 인스턴스 일 필요는 없습니다.

은 일반적으로 첫 번째 인수는 "작업"하나

번째 인수는 동작이 수행되고있는 "제목"인을 수행하려고한다. 그것은 무엇이든 될 수 있습니다.

나는 똑같이했으나 여전히 작동하지 않습니다.
참고 : 나는 또한

로 위키 말했다
authorize_resource :class => false 

에 의해 그것을 다른 방법 내내 일을했지만, 그 역시 작동하지 않습니다.

도움이 필요하면 내 컨트롤러에 표시, 새로 만들기, 만들기 또는 기타 기본 CRUD 동작과 같은 작업이 없습니다.
Cancan : 1.4.1

+0

작동하지 않는다는 것은 무엇을 의미합니까? 오류가 있습니까? 아니면 권한을 부여합니까! 방법은 그냥 발사하지 않는 것 같다? – raidfive

+0

@raidfire : authorize 메소드는 실행되지 않습니다. 오류가 없습니다. –

답변

3

링크 Debugging Abilities을 따라 디버깅을 시도하고 잘못된 점을 파악했습니다.

능력이 맞았습니다. 잘못된 순서로 지정하여 작은 실수를 저지르고있었습니다.

Cancan 능력이 작동하지 않는 문제가 발생할 경우 위의 링크를 사용하여 디버깅을 시도하십시오. 결국 작동하지 않는 것은 무엇이며 이유는 무엇인지 파악할 것입니다.

+0

당신이 그것을 알아 낸 것을 기쁘게 생각합니다! 주문이 정확히 어떻게 잘못 되었습니까? 두 개의 코드 예제 모두에': process_email, : abc'이 있습니다. – raidfive

+0

올바른 순서는 무엇입니까? 나는 똑같은 얼룩에 직면 해있다. –

+0

@AnilD : 당신의 문제를 보지 않고, 나는 너를 많이 도울 수 없다. 같은 질문을 게시하거나 원한다면 이메일을 통해 나와 연락 할 수 있습니다. –