如何在Rails中添加用户可以删除自己的功能?

时间:2012-07-01 18:28:53

标签: ruby-on-rails

我在Rails的Users控制器中有以下代码,允许用户自行删除:

def delete_account
User.find(params[:id]).destroy
flash[:success] = "Your account has been deleted."
redirect_to root_path
end

现在,我不确定如何将正确的路由添加到我的route.rb文件中,然后将该按钮正确添加到我的用户设置视图中。 对于我的路径文件,我有以下代码:

match '/delete_account' to: 'users#delete_account'

在我的设置视图文件中,我有以下代码在视图中为delete_account操作添加一个按钮:

<%= link_to class: "btn btn-danger", delete_account_path %>\

我非常感谢您在我的视图中提供的实现正确路径和嵌入式红宝石的任何帮助。很抱歉,如果这是一个容易修复的错误;我是初学者,这给我带来了一些麻烦。

1 个答案:

答案 0 :(得分:3)

我认为最好使用RESTful方式。

将您的方法重命名为控制器中的destroy

在你的routes.rb中,

resources :usersmatch '/delete_account', to: 'users#destroy'

在视图中,例如show.html.erb,

<%= link_to 'Delete', @user, confirm: 'Are you sure?', method: :delete %>

显而易见,您的show操作应找到合适的用户

@user = User.find(params[:id])