Ruby on rails 使用GET not POST返回带有POST的表单_?
我正试图使用带有的表单将此表单发回我的应用程序用户\u密码\u重置\u路径,但由于某些原因,使用的方法始终是GET而不是post。在我的控制器中,当我检查request.post?时,它总是错误的 我做错了什么Ruby on rails 使用GET not POST返回带有POST的表单_?,ruby-on-rails,Ruby On Rails,我正试图使用带有的表单将此表单发回我的应用程序用户\u密码\u重置\u路径,但由于某些原因,使用的方法始终是GET而不是post。在我的控制器中,当我检查request.post?时,它总是错误的 我做错了什么 # config/routes.rb match '/app/users/password_reset', to: 'users#password_reset', as: :app_users_password_reset, via: [:get, :post] 有关路线的rails
# config/routes.rb
match '/app/users/password_reset', to: 'users#password_reset', as: :app_users_password_reset, via: [:get, :post]
有关路线的rails routes输出为:
# > rails routes
app_users_password_reset GET|POST /app/users/password_reset(.:format) users#password_reset
以下是我的表单的标记:
# password_reset.html.erb
<div class='row'>
<div class='body col-md-3'>
<form>
<%= form_with scope: :user,
method: :POST,
url: app_users_password_reset_path,
local: true,
role: :form do |f| %>
<%= f.hidden_field :token, value: @password_reset_token %>
<div class="form-group">
<%= f.label :user_password, "Password" %>
<%= f.password_field :password, value: @password, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :password_confirmation, "Password confirmation" %>
<%= f.password_field :password_confirmation, value: @password_confirmation, class: "form-control" %>
</div>
<div class="form-group">
<%= f.submit "Reset password", id: "btn-reset-password", class: "btn btn-default" %>
</div>
<% end %>
</form>
</div>
</div>
#密码_reset.html.erb
带有代码的表单被包装在另一个html表单标记中,这可能是导致问题的原因。尝试删除and标记。密切关注log/development.log
以查看此处发生的情况,并验证发出的源代码是否在
标记中显示method=“POST”
。@tadman,不,肯定是GET:“Started GET”/app/users/password_reset?utf8=%E2%9C%93&Authentity_token=w6DzO3r5vFO25H1IyOk%2B8ZQN3nBrj42VTco%2BEIpGWcQASW6FYF0Jj%2B9E0BYJXWSPVDCBHAHQHW9BUW7I1GZDQ%3D%3D和用户%5Btoken%5D=1和用户%5Bpassword%5Bpassword%5D=[过滤]&用户%5Bpassword%5Bpassword%5Bpassword确认%5D=[过滤]&提交=重置+密码”2017-11-17:15-0500时127.0.1这就是为什么需要检查HTML源代码以确保表单配置正确。我认为带有的表单默认为POST
,因此不需要指定方法
。带有代码的表单包装在另一个html表单标记中,这可能会导致问题。试着去掉和标签。@NarenSisodiya好悲伤,我怎么会错过呢。就这样:)