Rails form_tag 正在使用 GET 而不是 PUT

Rails form_tag is using GET instead of PUT

我正在使用 form_tag 更新我的 'Car' 模型中的属性。一切都应该正常工作,除非我使用 GET 而不是 PUT 来检查日志。

路线

apply_superadmin_apply_coupons_path -   PUT /superadmin/apply_coupons/apply(.:format) superadmin/apply_coupons#apply
superadmin_apply_coupons_path -         GET /superadmin/apply_coupons(.:format) superadmin/apply_coupons#index

查看

<form class="super-admin-apply-coupons form-horizontal">

  <%= form_tag(apply_superadmin_apply_coupons_path, action: 'apply', method: 'PUT') do %>
    <div class="form-group">
      <label class="col-sm-2"> Select car</label>
      <div class="col-sm-4 apply-coupon-wrap">
        <%= select_tag :id, options_from_collection_for_select(@cars, "id", "device_number"), class:"form-control" %>
      </div>
    </div>
    <div class="form-group">
      <label class="col-md-2">Select coupon code</label>
      <div class="col-sm-4 apply-coupon-wrap">
        <%= select_tag :coupon_code_id, options_from_collection_for_select(@coupon_codes, "id", "name"), class:"form-control" %>
      </div>
    </div>
    <div class="form-group">
      <div class="col-sm-offset-2 col-sm-4">
        <%= submit_tag 'Apply', class: 'btn btn-success' %>
      </div>
    </div>
  <% end %>
</form>

它显然只是重定向回索引页面,而没有触发我想要的应用操作。

您可能在视图中生成了两个 <form> 标签,一个是 html 表单标签,另一个来自 <%=form_tag(...)%>。只需尝试删除 html 表单标签即可。