什么是用devise破坏注册的途径

Oli*_*ier 8 devise ruby-on-rails-3

我正在尝试添加链接,以便用户可以销毁他/她自己的帐户.我正在使用内置注册类.

在我看来,我已经<%= link_to 'Destroy', current_user, :confirm => 'Are you sure you want to destroy your account?', :method => :delete %>通过示例指向localhost:3000/users/4

首先,是使用正确的链接吗?其次,如何重定向到根路径,因为目前看起来它试图重定向到id为4的用户(并且因为它受到保护而失败).

耙路线给出 DELETE /users(.:format) {:action=>"destroy", :controller=>"devise/registrations"}

提前致谢.

mia*_*t17 9

尝试

<%= link_to 'Destroy', user_registration_path, :confirm => 'Are you sure you want to destroy your account?', :method => :delete %>
Run Code Online (Sandbox Code Playgroud)

这是因为设计将注册视为奇异资源.

此外,运行rake routes,您可以看到有关注册路由的详细信息:

user_registration      POST   /users(.:format)                                       {:action=>"create", :controller=>"devise/registrations"}
new_user_registration  GET    /users/sign_up(.:format)                               {:action=>"new", :controller=>"devise/registrations"}
edit_user_registration GET    /users/edit(.:format)                                  {:action=>"edit", :controller=>"devise/registrations"}
user_registration      PUT    /users(.:format)                                       {:action=>"update", :controller=>"devise/registrations"}
user_registration      DELETE /users(.:format)                                       {:action=>"destroy", :controller=>"devise/registrations"}
Run Code Online (Sandbox Code Playgroud)

它的意思是:

  • user_registration_path 是一个返回的辅助方法 /users(.format)
  • 执行DELETE请求/users(.format)将删除注册