我正在做Michael Hartl rails教程,并试图实现密码重置功能,但发送密码重置表单(您重置密码的表单)的请求看起来像/password_reset。SOLceKJXoax55zSBAfAhTQ然后说:No route matches [PATCH] "/password_resets。在教程中,我们被要求使用这个路由:resources:password_reset, only: [:new,:create,:edit,:update]但是我得到了错误消息。
这是如何我的password_resets_controller。Rb更新方法如下:
<>之前def更新如果password_blank ?闪光。now[:danger] = "密码不能为空"呈现"编辑"elsif @user.update_attributes (user_params)log_in @userflash[:success] = "密码已重置。"redirect_to @user其他的呈现"编辑"结束结束之前有人知道我的方法或路由是如何导致这个错误的吗?提前谢谢你。
更新:添加我的重置密码视图(password_reset edit.html.erb)
<% provide(:title, 'Reset Password') %>
<h1>Reset Password</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@user, url: password_resets_path(params[:id])) do |f| %>
<%= render 'shared/error_messages' %>
<%= hidden_field_tag :uemail, @user.uemail %>
<%= f.label :password %>
<%= f.password_field :password, class: 'form-control' %>
<%= f.label :password_confirmation, "confirmation" %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
<%= f.submit "update password", class: "btn btn-primary" %>
<% end %>
</div>
</div>
修改如下:
<%= form_for(@user, url: password_resets_path(params[:id])) do |f| %>
:
<%= form_for(@user, url: password_reset_path(params[:id])) do |f| %>