我正在尝试使用Devise来删除用户.我有一个用户列表,每个用户都有他们的电子邮件和旁边的“删除”链接,只有我,管理员才能看到.我希望能够只需单击删除链接即可永久删除用户.以下代码删除了我,管理员!
<%= link_to "delete",user_registration_path,:method => :delete,:confirm => "You sure?" %>
我认为你需要将你要删除的用户的id传递给某种’destroy_user’方法:
@user.find(params[:id]).destroy_user
但是当你必须向user_registration_path提交DELETE请求时,你如何做到这一点?
——编辑——–
好的,我已将此方法添加到我的用户控制器:
def destroy User.find(params[:id]).destroy flash[:success] = "User destroyed." redirect_to users_path end
因此,我需要告诉用户控制器在收到DELETE请求时调用destroy方法.你是如何在routes.rb中做到这一点的?目前我有:
match '/users/:id',:to => 'users#show',:as => :user match '/all_users',:to => 'users#index',:as => :all_users
我需要这样的东西:
match 'delete_user',:to => 'users#destroy',:as => :destroy_user,:method => :delete
但这不起作用.什么应该在链接?:
<%= link_to "delete",destroy_user,:confirm => "You sure?" %>
换句话说,你应该在routes.rb文件中添加什么来区分不同的请求类型(GET,DELETE等)到同一个url?
解决方法
Devise不提供删除其他用户的操作,仅删除当前登录的用户.您必须在其中一个控制器中创建自己的操作(最有可能的是,无论哪个控制器都有显示所有用户的操作),以处理删除当前登录的用户以外的用户.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。