【发布时间】:2016-09-27 05:06:33
【问题描述】:
我有一个用于重置密码的 HTML 表单。它的方法是PATCH,它应该是PasswordResetController 的update 方法。但是,在提交时,总是发出GET 请求,而不管指定的method。我可以输入method=ANYTHINGHERE,它总是发出GET 请求。
我的表格很简单:
<form class="group" action="<%= password_reset_url %>" method="PATCH">
<input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>">
<input type="password" class="password-login" name="new_password" placeholder="New Password">
<input type="password" class="password-login" name="new_password_verify" placeholder="New Password Confirmation">
<button class="login-button">Reset Password</button>
</form>
我的路线似乎井井有条:
password_reset_index POST /password_reset(.:format) password_reset#create
new_password_reset GET /password_reset/new(.:format) password_reset#new
edit_password_reset GET /password_reset/:id/edit(.:format) password_reset#edit
password_reset PATCH /password_reset/:id(.:format) password_reset#update
PUT /password_reset/:id(.:format) password_reset#update
定义为resources :password_reset, only: [:new, :create, :edit, :update]
还有我的控制器:
class PasswordResetController < ApplicationController
new, edit, create....etc.
def update
user = ...
end
end
创建、新建和编辑都可以正常工作,但在提交表单时甚至没有进入更新方法。我刚收到No route matches [GET] "/password_reset/longTokenString。有任何想法吗?我觉得我在这里已经用尽了我的选择。
这不是this question 的重复,因为令牌字符串正在正确生成。令牌字符串也用作 /password_reset/:id/edit 路由中的 id,并且在那里也可以正常工作。
提前致谢。
【问题讨论】:
标签: ruby-on-rails forms ruby-on-rails-4