我有部分表格。当页面第一次加载时,它工作正常。但是,如果部分重新渲染,然后您提交表单,它会尝试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 %>");
答案 0 :(得分:1)
将此行添加到您的部分:
<input name="authenticity_token" type="hidden"
value="<%= form_authenticity_token %>"/>