Tin*_*n81 4 ruby ruby-on-rails ruby-on-rails-3
在我的Rails应用程序中,我希望users在销毁自己的帐户之前输入密码.
所以在我的routes.rb中我将此添加到我的user资源中:
resources :users do
member do
get :terminate
end
end
Run Code Online (Sandbox Code Playgroud)
在我的terminate.html.erb中,我有这个简单的形式:
<%= form_for(:user, :controller => "users", :action => "destroy", :html => {:method => "delete"}) do |f| %>
<%= f.label :password %><br/>
<%= f.password_field :password %>
<%= f.submit "Terminate account" %><br/>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在我的users_controller.rb中我有这个:
def terminate
@user = User.find(params[:id])
@title = "Terminate your account"
end
def destroy
# make sure entered password is correct etc...
@user.destroy
flash[:success] = "Your account was terminated."
redirect_to root_path
end
Run Code Online (Sandbox Code Playgroud)
但是,当我点击提交时,我收到此错误:
No route matches [DELETE] "/en/users/7/terminate"
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
谢谢你的帮助.
Mar*_*pka 11
这应该工作:
<%= form_for @user, method: :delete do |f| %>
Run Code Online (Sandbox Code Playgroud)