Ruby on rails 使用GET not POST返回带有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

我正试图使用带有的表单将此表单发回我的应用程序用户\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 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好悲伤,我怎么会错过呢。就这样:)