2014-10-10 4 views
0

후 진정한 반환하는 나는 다음과 같은Rolify has_role? remove_role

User1 = User.find(1) 
User2 = User.find(2) 

User1.add_role :teacher 
User2.add_role :teacher 

User1.has_role? :teacher 
>> true 

User2.has_role? :teacher 
>> true 

난을 겪고

User1.remove_role :teacher 

User1.has_role? :teacher 
>> false 

User2.has_role? :teacher 
>> true 

특정 사용자의 역할을 삭제 사용자에게 역할을 추가 할 싶습니다 현재의 문제

User1.has_role? :teacher 

은 제거 후에도 TRUE를 반환합니다. 그러나 내가 User1.roles 할 때 예상대로 빈 배열을 반환하고 has_any_roles? 예상대로 false를 반환합니다. 역할이 제거 된 후에도 TRUE를 반환하는 이유는 무엇입니까?

답변

1

당신은 다시

User1.remove_role :teacher 
    User1.has_role? :teacher 
    -> true 
    User1.reload 

    User1.has_role? :teacher 
    -> false 
을 역할이 있는지 확인하기 전에 사용자를 다시로드해야