Rails编辑表单发送POST请求而不是PUT

时间:2020-06-08 08:27:14

标签: ruby-on-rails ruby

编辑表单提交POST请求而不是PUT请求,即使_method隐藏字段在如下所示的表单中也可用

<form id="edw_special_debts_child_form" class="will-form" action="/equitable_distribution_will/update-special-debts-child" accept-charset="UTF-8" method="post">
<input name="utf8" type="hidden" value="✓">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="authenticity_token" value="xxxxxxxx">

控制台中没有出现JS错误。

Rails错误:

No route matches [POST] "/update-special-debts-child"

使用此代码生成的表单

<%= form_tag(will_form_url, :id => "edw_special_debts_child_form", method: @form_method, class: "will-form") do %>

        <% if have_sons?(@calculator) || have_daughters?(@calculator) %>
            <%= render partial: "shared/will_question_repeater_block", locals: {q: @children_compensate_question} %>
        <% end %>
        <div class="btn-nav space-bet">
            <% if (have_wife?(@calculator) || session[:will_spouse_non_muslim] == 'true') && current_user.gender == 'male' %>
                <%= link_to "Previous", equitable_distribution_will_special_debts_wife_path, class: "text-center btn-gold gotham" %>
            <% else %>
                <%= link_to "Previous", equitable_distribution_will_special_debts_lp_path, class: "text-center btn-gold gotham" %>
            <% end %> 
            <button type="submit" class="text-center btn-gold gotham">Save & Continue</button>
        </div>

    <% end %>

这是助手

def will_form_url
    form_url = "#{action_name}"
    @form_method = ""

    if $tables[action_name.to_sym].where(will_id: session[:will_id]).present?
        form_url = form_url.insert(0, 'equitable_distribution_will_update_')
        @form_method = "put"
    else
        form_url = form_url.insert(0, 'equitable_distribution_will_create_')
        @form_method = "post"
    end
    form_url = form_url.insert(-1, '_path')
    send(form_url)
end

我表单中最棘手的部分是,我通过JS复制字段,并在每个表单元素的末尾附加“ []”以获取值数组。

如果我仅添加一行,则编辑表单会正常工作,但是当我添加多行时,它将通过POST而不是PUT提交

可能是什么问题?

0 个答案:

没有答案