2013-11-21 3 views
0

부분적으로 양식이 있습니다. 페이지가 처음으로로드되면 제대로 작동합니다. 그러나 부분 렌더링을 다시 수행하면 양식을 제출하고 대신 POST를 시도합니다. 나는 PUT 강제로이 줄을 추가 시도 :부분 대신 부분을 입력하여 게시하지 말고

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

을,하지만 내가 가지고 : 이렇게

"경고 CSRF 토큰 진위를 확인할 수 없습니다"방법 => 넣어 : 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

레일즈는 첫 번째 응답을 위해 레일스를 이해하지만 부분품을 보낼 때 레일에 양식이 포함되어 있는지 파악하는 데 어려움이 있습니다. 이상적으로, 나는 또한 레일이 그것을 이해할 수 있기를 바랍니다. BTW, 대답을 수락하는 것을 잊지 마십시오. – Chandranshu

+0

StackOverflow를 사용하면 답변을 표시하기 전에 5 분 정도 기다릴 수 있습니다. 엉덩이에 엄청 큰 고통이 있습니다. 다시 한 번 감사드립니다! – fatfrog

관련 문제