强制将表单放入部分而不是发布

时间:2013-11-21 05:06:45

标签: ruby-on-rails forms partials

我有部分表格。当页面第一次加载时,它工作正常。但是,如果部分重新渲染,然后您提交表单,它会尝试POST。我尝试添加此行以强制PUT:

<input type="hidden" name="_method" value="put" />

,但后来我收到了“警告:无法验证CSRF令牌的真实性”

执行:method =&gt; :put,和:html =&gt; {:method =&gt;:put}没有任何影响。

我该如何解决这个问题?

部分:

<div id="item_form<%= item.id %>">
    <%= render 'edit_item_row', item: item %>
</div>

形式:

    <%= form_for item do |f| %>
        <%= f.hidden_field :report_id, :value => @report.id %>
        <tr class="highlite grid edit_item_<%= item.id %>">
            <td <%= item.notes? ? "style=border-bottom:none;" : "" %>>

                <%= f.text_field :name, :style => "font-size:1em;width:234px;margin-right:20px;", :value => item.name, :id => "first_focus_#{item.id}" %>

                <%= f.select :tax_id, Tax.all.collect{ |c| 

[c.territory_short_form, c.id]}, {:selected => item.tax_id}, :style => 'font-size:1em;'  %> 
                    </td>
             <tr />
    <% end %>

Update.js.erb:

$("#item_form<%=@item.id%>").html("<%= escape_javascript(render(:partial => 'reports/edit_item_row', :locals => {:item => @item})).html_safe %>");

1 个答案:

答案 0 :(得分:1)

将此行添加到您的部分:

<input name="authenticity_token" type="hidden"
                                         value="<%= form_authenticity_token %>"/>