我想做以下
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?
答案 0 :(得分:1)
您需要在检查用户是否再次拥有角色之前重新加载用户
User1.remove_role :teacher
User1.has_role? :teacher
-> true
User1.reload
User1.has_role? :teacher
-> false