【问题标题】:Rolify has_role? returning true after remove_roleRolify has_role?在 remove_role 之后返回 true
【发布时间】:2014-10-10 14:25:10
【问题描述】:

我想做以下事情

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?

【问题讨论】:

    标签: ruby-on-rails-4 devise cancan rolify pundit


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多