0

我想做以下事情

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?

4

1 回答 1

1

您需要重新加载用户,然后再检查它是否再次具有角色

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

    User1.has_role? :teacher
    -> false
于 2015-03-12T14:00:34.683 回答