允许管理员将用户分配给Ruby on Rails中的子管理员

时间:2017-05-25 02:27:10

标签: ruby-on-rails

我正在创建一个类似博客的应用程序,其中包含基于不同管理员层的功能。

我有一个主管理员,我希望能够将用户转变为子管理员,这将是一种管理员,可以访问某些管理员功能但不是全部。

目前我有一个_users partial,我在视图中使用它来向管理员显示所有用户:

<li>
  <%= link_to user.name, user %>
| <%= pluralize(user.how_many_new_posts?, "unsubmitted daily post") %>   
<% if current_user.admin? && !current_user?(user) %>
    | <%= link_to "delete account", user, method: :delete,
                                  data: { confirm: "You sure?" } %>
  <% end %>
</li>

这将呈现每个用户的名称,他们拥有的未提交帖子数以及删除用户的选项。

我想在这里包含另一个选项,一种单击按钮以使指定用户成为子托管的方法。单击此按钮后,它应该使管理员能够将其他用户分配给此子托管,以便他们可以像上面部分一样监视它们。我认为这将需要一些新的部分,但我不完全确定它将如何工作。有没有人有这方面的经验?

1 个答案:

答案 0 :(得分:1)

您需要创建一个名为Role的模型has_many用户和User belongs_to Role或您喜欢的任何关系。 你可能有roles差异。{ 然后,您可以根据自己设计自己的角色来管理可访问性/能力,或者您可以使用宝石,例如: cancancan

然后,在您的视图中,您可以提供可用roles的下拉列表,并更改role_id上的submit