2010-12-31 3 views
1

레일즈 3에 도착한 이래로 첫 번째 또는 두 번째 베타 주위에 장치를 사용했고 이제는 일부 역할이 필요합니다. 웹 검색 후 CanCan이 최상의 솔루션이어야합니다. 하지만 CanCan이 주제를 편집/파괴 할 수있는 포럼 중재자를 원하는 것처럼 CanCan이 내 요구 사항을 관리 할 수 ​​있는지 확신 할 수 없지만 주제를 만든 사용자도 편집 할 수 있어야합니다. 어떻게 할 수 있습니까?Rails 3 및 Devise로 역할 권한 부여

+1

Devise의 역할은 무엇입니까? 동일한 'admin_flag'솔루션 또는 동일한 역할의 사용자 역할을 허용하는 전체 역할 객체 경로가 있습니다. Devise github 사이트의 모든 것. 그들은 이것을 최근에 추가했을 것입니다. 나는 CanCan을 모른다. 아마 그 옵션을 만드는 요구 사항이있을 수 있습니다. –

답변

4

위의 간단한 설명을 근거로 CanCan이 사용자의 요구 사항을 처리 할 수 ​​있어야한다고 생각합니다.

CanCan은 주로 인증 규칙을 중앙화하기위한 단순화 된 구문입니다. 그것은 상자에서 역할을 제공하지 않습니다. 그러나 CanCan wiki에는 simplemore complex 역할 구현과 같은 매우 유용한 링크가 많이 있습니다.

"소유자"역할을 시도하는 대신 소유권을 직접 모델링하는 것이 도움이된다는 것을 발견했습니다. 그래서 당신은 위의 설명 유스 케이스는 따라서 귀하의 능력 정의에서 모델링 할 것 (가정 당신은 위의 간단한 역할 체계를 사용) :이 도움이

def initialize(user) 
    ... 
    can :manage, Topic if user.is? :moderator 
    can :manage, Topic { |topic| if (topic.user_id == user.id) } 
    ... 
end 

희망을.

관련 문제