Ruby 如何路由和删除设计注册?
我已经聘请Desive作为rails web应用程序的用户身份验证宝石 使用此预生成的行:Ruby 如何路由和删除设计注册?,ruby,ruby-on-rails-3,devise,authentication,Ruby,Ruby On Rails 3,Devise,Authentication,我已经聘请Desive作为rails web应用程序的用户身份验证宝石 使用此预生成的行: <p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</p> Myroutes.rb具有: devise_for :users 我的rake路由产生
<p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</p>
Myroutes.rb
具有:
devise_for :users
我的rake路由
产生:
new_user_session GET /users/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"}
user_session POST /users/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"}
destroy_user_session GET /users/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"}
user_password POST /users/password(.:format) {:action=>"create", :controller=>"devise/passwords"}
new_user_password GET /users/password/new(.:format) {:action=>"new", :controller=>"devise/passwords"}
edit_user_password GET /users/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"}
PUT /users/password(.:format) {:action=>"update", :controller=>"devise/passwords"}
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"}
PUT /users(.:format) {:action=>"update", :controller=>"devise/registrations"}
DELETE /users(.:format) {:action=>"destroy", :controller=>"devise/registrations"}
user_confirmation POST /users/confirmation(.:format) {:action=>"create", :controller=>"devise/confirmations"}
new_user_confirmation GET /users/confirmation/new(.:format) {:action=>"new", :controller=>"devise/confirmations"}
GET /users/confirmation(.:format) {:action=>"show", :controller=>"devise/confirmations"}
我在这里遗漏了什么?请考虑以下事实,即在路线中:
DELETE /users(.:format) {:action=>"destroy", :controller=>"devise/registrations"}
所以GET请求不会被认为是正确的路由。尝试以下方法:
<% form_for @user, :html => { :method => 'delete' } do |f| %>
<%= submit_tag "destroy him" %>
<% end %>
{:method=>'delete'}do | f |%>
在routes.rb中-执行此操作
devise_scope :user do
get "delete_user", :to => "devise/registrations#destroy", :as => :edit_user_registration
end
将此行包括在routes.rb中:
devise_scope :user
delete "sign out" => "devise/session#destroy"
但是我没有使用任何GET请求(如果我在这里出错,请更正我)。另外,我真的应该删除注册吗?顺便说一句,在使用你的线索进行了一些研究之后,我得到了以下结论:这个:最后的答案是:
devise_scope :user
delete "sign out" => "devise/session#destroy"