Ruby on rails 在提交rails时重新路由到路径

Ruby on rails 在提交rails时重新路由到路径,ruby-on-rails,Ruby On Rails,我让用户能够重置密码,然后在完成后重新路由。然而,当使用表单标签和重定向到时,我得到了一些不希望的重新路由 成功提交后,表格应重新发送至: 但它会改为: //额外的部分是令牌id CustomerPasswordResetController控制器 客户密码重置/edit.html.erb url选项就是问题所在。Rails可以提交。新视图将提交到创建操作,编辑将提交到更新,之前的答案已成功重新路由,但未更新。我需要参数以便在更新模型中找到用户。Rake routes显示,我确实需要将此从pos

我让用户能够重置密码,然后在完成后重新路由。然而,当使用表单标签和重定向到时,我得到了一些不希望的重新路由

成功提交后,表格应重新发送至:

但它会改为:

//额外的部分是令牌id

CustomerPasswordResetController控制器

客户密码重置/edit.html.erb


url选项就是问题所在。Rails可以提交。新视图将提交到创建操作,编辑将提交到更新,之前的答案已成功重新路由,但未更新。我需要参数以便在更新模型中找到用户。Rake routes显示,我确实需要将此从post更改为补丁

<%= form_for @customer, :url => customer_password_resets_path, :method => :patch do |f| %>

那么我是否需要创建新视图或更改提交表单?仅更改表单。从表单Helper中删除url选项删除url重新路由到customer/id,而不是customer\u resets\u new可能我错了!!与前面一样使用url选项,但添加method::put/:patch选项。您有资源:customer\u password\u在routes.rb中重置,对吗?是的。我只需要删除参数并将该方法定义为post
<%= form_for @customer, :url => customer_password_resets_path(params[:id]) do |f| %>
<% if @customer.errors.any? %>
    <div class="error_messages">
      <h2>Form is invalid</h2>
      <ul>
        <% for message in @customer.errors.full_messages %>
            <li><%= message %></li>
        <% end %>
      </ul>
    </div>
<% end %>
<div class="field">
  <%= f.label :password %>
  <%= f.password_field :password %>
</div>
<div class="field">
  <%= f.label :password_confirmation %>
  <%= f.password_field :password_confirmation %>
</div>
<div class="actions"><%= f.submit "Update Password" %></div>
<%= form_for @customer, :url => customer_password_resets_path, :method => :patch do |f| %>