我正在尝试使用 form_with 将此表单发回我的 app_users_password_reset_path ,但由于某种原因,使用的方法总是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
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>
答案 0 :(得分:1)
form_with代码包含在另一个html表单标记内,这可能导致问题。尝试删除和标记。