我想知道如何使用devise gem添加管理员角色。我已经将它用于普通用户但不用于管理员角色。我读过这个https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role。清楚地提到了如何将admin的角色添加到应用程序中。但我对以下内容提出了一些问题:
如何指定特定用户是管理员(在我的情况下,我只想要一个私人管理员来控制应用中的活动)?
如何使用admin角色进行基本的CRUD活动(我想要用户及其内容的CRUD活动)?
由于
答案 0 :(得分:2)
我使用了Devise,CanCan和Rolify堆栈来做一些管理工作。这比你需要的更多,但好处很棒。关于如何设置它的维基here。
如果你想要一个管理员,首先给你的所有用户一个角色,例如“成员”,然后给你的管理员一个角色,比如“admin”。
然后你可以使用像current_user
这样的设计检查,你也可以使用像if @user.has_role? "admin"
这是相当老板
答案 1 :(得分:0)
对于使用 Rails 5 ,Devise和CanCanCan的更新解决方案(CanCan看起来不再受支持),请查看此信息:
这是一个值得一提的替代解决方案;它使用Rails Pundit和 has_secure_password ,值得一提:
使用CanCanCan的优势在于它将授权与用户角色分离,而很多人发现Pundit更容易以更少侵入性工作。两者都很好。
两者都解决了你想要做的事情。
答案 2 :(得分:0)
除了使用CancanCan之类的宝石和rolify之外,当前的轨道没有其他添加方法。遵循其文档中的步骤,还将所有其他用户的admin_role设置为false,并使用rails控制台将所需的用户设置为true 下面的视频非常有帮助。