2011-12-14 2 views
0

여기에 아주 간단한 질문이 있지만 대답이 없습니다 ... ;-)cancan 롤별 레코드 필터링

역할별로 내 사용자 db를 탐색하면됩니다.

@users= User.role?('manager') 그러나 물론이 작동하지 않습니다 난 내가 노력 캉캉

에 의해 생성 된 마스크를 찾고 있어요 역할과 일치하는 방법을 모르겠어요.

답변이 있으십니까? 감사!!

+1

당신이 Ability.rb에 의미합니까를? 그리고 역할은 사용자와 어떻게 관련되어 있습니까? 사용자는 역할을 소유합니까? – alony

답변

0

좋아, 알았다.

사용이 범위 : 대답은 그의 뛰어난 railscasts 라이언 B.에 의해 주어졌다

scope :with_role, lambda { |role| {:conditions => "roles_mask & #{2**ROLES.index(role.to_s)} > 0"} } 

을 단순히 그것을 이런 식으로 적용

@admins = User.with_role('admin') 
+0

데이터베이스에 역할을 저장하지 않으면 적용됩니다. –

+0

역할은 마스크를 사용하여 데이터베이스에 저장됩니다. – ndemoreau