我有Rails 4和角色模型用于角色分配。
我无法弄清楚如何删除分配给用户的角色。
我在我的个人资料中有两个角色.rb,:manager和:student。
我有一个已分配两个角色的用户。我想从该用户的角色分配中删除管理员。
尝试p.roles<< :学生,添加一个角色,所以我尝试了p.roles>> :经理尝试删除它,但它没有用。
如何从用户中删除角色?
另外,在我看来,当我这样做时:
if(current_user.has_role? :student)
我收到此错误:
undefined method `has_role?' for #<User:0x007fb3b39dacb0>
我不知道或不了解此消息的含义。
任何帮助将不胜感激。感谢
答案 0 :(得分:0)
您可以使用方法remove_role从用户中删除角色。假设您要从ID = 1的用户中删除:manager角色:
user = User.find(1)
user.remove_role :manager
对于第二个问题,您指定角色的模型是哪个?个人资料或用户?您只需将Rolify方法直接调用到您指定为“Rolify”的模型,如下所示:
class User < ActiveRecord::Base
rolify
end
或者如果您使用的是role_model gem:
user.valid_roles.delete(:manager)