2011-04-06 4 views
1

관리자 불린 (admin boolean) 필드가있는 사용자 모델이 있습니다. 그런 다음 CanCan을 켜기 원하는 Admin Controller가 있습니다.CanCan - 모덜리스 컨트롤러를 설치하는 방법?

관리 모델이 없으므로 Admin Controller에 CanCan을 어떻게 추가합니까?

나는 시도했다 :

class AdminController < ApplicationController 
    load_and_authorize_resource :user 
    load_and_authorize_resource :admin, :through => :user 


class Ability 
    include CanCan::Ability 
    def initialize 
     .... 
     can :manage, Admin if current_user.admin == TRUE 
     .... 

그러나와 오류

아이디어 "액세스가 전무에 거부"그

? 감사합니다.

+0

죄송합니다. '== TRUE'? 'TRUE'는 앱에서 일정합니까? –

+0

또한 :'through' 옵션은'load_and_authorize_resource'에서 어디서 왔습니까? –

+0

True는 상수가 아니며 부울 값입니다. 유효하지 않습니까? – AnApprentice

답변

0

실력 클래스에서 'current_user'방법에 액세스 할 수 있습니까? 나는 네가 가질 것이라고 생각하지 않을거야. 나는 당신이 당신의 능력 수준이있을 수 캉캉를 사용할 때 무엇을 기억 들어

:

def initialize(user) 
    user ||= User.new #guest user. 
... 
end 

그리고 사용자가 현재 사용자가 될 것입니다, 나는 기대한다. 그리고 그게 효과가 있다고 생각합니다.

CanCan 위키의 https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers 페이지를 살펴볼 수도 있습니다. 정확히 같은 문제는 아니지만 특별한 경우 (비 RESTful-Controllers)를 다루기 때문에 원하는 작업을 수행하는 방법에 대한 힌트를 얻을 수 있습니다.

건배