在rails应用程序中添加管理员角色

时间:2012-11-14 10:25:55

标签: ruby-on-rails-3 devise ruby-on-rails-3.2

我想知道如何使用devise gem添加管理员角色。我已经将它用于普通用户但不用于管理员角色。我读过这个https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role。清楚地提到了如何将admin的角色添加到应用程序中。但我对以下内容提出了一些问题:

  1. 如何指定特定用户是管理员(在我的情况下,我只想要一个私人管理员来控制应用中的活动)?

  2. 如何使用admin角色进行基本的CRUD活动(我想要用户及其内容的CRUD活动)?

  3. 由于

3 个答案:

答案 0 :(得分:2)

我使用了Devise,CanCan和Rolify堆栈来做一些管理工作。这比你需要的更多,但好处很棒。关于如何设置它的维基here

如果你想要一个管理员,首先给你的所有用户一个角色,例如“成员”,然后给你的管理员一个角色,比如“admin”。

然后你可以使用像current_user这样的设计检查,你也可以使用像if @user.has_role? "admin"

这样的Rolify

这是相当老板

答案 1 :(得分:0)

对于使用 Rails 5 DeviseCanCanCan的更新解决方案(CanCan看起来不再受支持),请查看此信息:

  1. RAILS 5: USER ACCOUNTS WITH 3 TYPES OF ROLES – DEVISE, RAILS_ADMIN, CANCANCAN
  2. 这是一个值得一提的替代解决方案;它使用Rails Pundit has_secure_password ,值得一提:

    1. Implementing Roles and Permissions in Ruby on Rails
    2. 使用CanCanCan的优势在于它将授权与用户角色分离,而很多人发现Pundit更容易以更少侵入性工作。两者都很好。

      两者都解决了你想要做的事情。

答案 2 :(得分:0)

除了使用CancanCan之类的宝石和rolify之外,当前的轨道没有其他添加方法。遵循其文档中的步骤,还将所有其他用户的admin_role设置为false,并使用rails控制台将所需的用户设置为true 下面的视频非常有帮助。

Web crunch tutorial, Admin role