如何让管理员用户销毁其他用户?设计CanCanCan

时间:2014-09-22 16:33:20

标签: ruby-on-rails devise

我正在尝试让管理员用户删除其他用户。当我尝试删除其他用户注册路径时,它会删除管理员。我看过其他一些帖子有同样的问题,但还是无法复制它。

这是all_users.html.erb:

    <h2 class="admin">All Users</h2>

    <table class="table table-striped">
 <tbody>
  <thead>
    <tr>
      <th>First Name</th>
      <th>Last Name</th>
      <th>Cell Phone</th>
      <th>Login Method</th>
      <th>Delete User</th>
    </tr>
  </thead>
<tr>
<% @users.each do |user| %>
<td><%= user.first_name %></td>
<td><%= user.last_name %></td>
<td><%= user.cell_phone %></td>
<td><%= user.sprovider %></td>
<td><%= link_to user_registration_path, data: {confirm: "Are you sure?"}, method: :delete do%>
  <span class="fa fa-trash-o"></span>
  <% end %></td>
</tr>
  <% end %>
    </tbody>
      </table>

为什么删除current_user(admin)而不是我正在调用delete方法的用户?

1 个答案:

答案 0 :(得分:2)

您似乎正在使用Devise作为用户的身份验证方法。虽然设计将创建用于身份验证/注册的路由(甚至是自我帐户描述),但它不会为User模型创建常规REST控制器。

我建议创建一个新的UsersController,包括常规索引,显示,删除,更新,创建等,以及常规路径

resources :users

并使用该控制器删除其他用户。那样你就可以有一个合适的

<%= link_to @user, method: :delete, confirm: 'Are You Sure?' %>