2013-11-21 31 views
0

我有一個部分形式。第一次加載頁面時,它工作正常。但是,如果部分重新呈現,那麼您提交表單,它會嘗試POST。我嘗試添加此行來強制PUT:強制在一個部分的形式,而不是後

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

,但後來我得到了一個 「警告:無法驗證CSRF令牌真實性」

這樣做:方法=>:put和:HTML = > {:method =>: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<%[email protected]%>").html("<%= escape_javascript(render(:partial => 'reports/edit_item_row', :locals => {:item => @item})).html_safe %>"); 
+0

你第二次如何提交表格?通過AJAX或通過普通的舊HTTP? – Chandranshu

+0

通過普通的http – fatfrog

回答

1

此行添加到您的部分:

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

這樣做!謝謝! Rails無法弄清楚它應該是一個推理嗎? – fatfrog

+1

Rails確實爲第一個響應找出了答案,但是當您發送partials時,rails無法弄清楚您已包含表單。理想情況下,我也喜歡軌道來弄清楚。順便說一句,不要忘記接受答案。 – Chandranshu

+0

StackOverflow讓你等待5分鐘,然後你可以標記答案,屁股巨大的痛苦。再次感謝! – fatfrog

相關問題