gpt4 book ai didi

ruby-on-rails - 在 Devise 中以管理员身份销毁用户

转载 作者:行者123 更新时间:2023-12-04 06:22:48 25 4
gpt4 key购买 nike

我正在尝试使用 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 请求时,您如何做到这一点?

- - - 编辑 - - - -

好的,我已将此方法添加到我的用户 Controller 中:
def destroy
User.find(params[:id]).destroy
flash[:success] = "User destroyed."
redirect_to users_path
end

因此,我需要告诉用户 Controller 在收到 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, :method => :delete, :confirm => "You sure?" %>

换句话说,为了区分对同一 url 的不同请求类型(GET、DELETE 等),您应该在 routes.rb 文件中放什么?

最佳答案

将“用户”替换为您要销毁的实际用户,例如:如果您将电子邮件打印为 user.email,则将用户插入那里等等

<%= link_to "delete", user_registration_path(user), :method => :delete, :confirm => "You sure?" %>

关于ruby-on-rails - 在 Devise 中以管理员身份销毁用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com