2011-10-09 3 views
9

많은 line_item을 포함하는 카트가 있습니다. 내가 클릭 할 때 장바구니에서 line_item을 제거하는 각 광고 항목 옆에 '삭제'버튼이 있습니다.사용할 양식 얻기 : 방법 => : delete (rails)

button_to 메서드를 사용하여이 작업을 수행 할 수 있지만 form_for를 사용하고 싶습니다. 왜냐하면 동시에 line_item의 부모 개체의 특성을 변경하고 싶기 때문입니다 (각 line_item도 물론 코스에 속합니다. 코스 부모에게 더 이상 장바구니에 없다고 말하고 싶습니다.) 방법 => : 작동해야 삭제 (http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper 루비 문서를 단순히 추가하는 것을 말한다

<%= form_for(line_item, :method => :delete, :remote => true) do |f| %> 
<%= f.submit :value => "Delete" %> 
<% end %> 

: form_for 여기

내 코드를 사용하고 .html # method-i-form_for) 렌더링 된 html은 적절하지 않습니다. 아직

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

입니다 그러나 그것은해야한다 : 내가 잘못 뭐하는 거지

<input name="_method" type="hidden" value="delete"> 

?

답변

11

마크 니덤 (Mark Needham)은 blog post이며, 을 form_for에 넣지 않는 이유에 대해 이야기합니다. 'HTML'오른쪽 키와 해시의 일환으로 대부분의 인수의 일부로 제공되는 '방법'그는

그것은 'form_for'는 기대 밝혀 말한다.

<%= form_for(line_item, :method => :delete, :remote => true) do |f| %> 

에 :

그래서 당신은 당신의 코드를 변경해야

<%= form_for(line_item, :html => { :method => :delete, :remote => true }) do |f| %> 

나는 레일 3.0 응용 프로그램에서 시도하고, 생성 된 HTML이었다 :

<input type="hidden" value="delete" name="_method"> 
관련 문제