在设计生成的模型中删除用户

首先,我是铁杆新手。 我使用devise gem进行用户身份validation。 现在我想为管理员提供一种删除其他用户的方法。 用户的id未传递给我的destroy操作。 这是我的代码

user_controller.rb

class UsersController < ApplicationController def destroy User.find(params[:id]).destroy redirect_to dashboard_path end end 

dashboard.html.erb

     | 

首先,您不应直接在视图中分配实例变量。 这是Controller的责任。 所以,在上面的例子中,正确的做法是这样的:

 # users_controller.rb class UsersController < ApplicationController def dashboard @users = User.all end def destroy User.find(params[:id]).destroy redirect_to dashboard_path end end 

你的观点应该是这样的:

 # dashboard.html.erb <% if current_user.admin == true %> <% @users.each do |user| %> <%= user.email %> | <%= link_to "delete", user, method: :delete, data: { confirm: "Are you sure"} %>
<% end %> <% end %>

最后但并非最不重要= P确保您的routes.rb有这样的东西:

 # routes.rb delete "/users/:id" => "users#destroy", as: :user 

当然,这只是一个基于你的问题的例子,但它应该像魅力= P一样工作