2011-10-09 4 views
9

私は多くのline_itemを含むカートを持っています。クリックすると、カートからline_itemが削除される各広告申込情報の横に「削除」ボタンが表示されます。使用するフォームを取得する:method =>:delete(rails)

私はbutton_toメソッドでこれを行うことができますが、私は同時にline_itemの親オブジェクトの属性を変更したいので、form_forを使用したいと思います(各line_itemもコースに属していますが、私はコースの親にそれがもはやカートにないことを伝えたい)。

ここでのform_for使用して私のコードです:

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

ルビーのドキュメントは、単に追加することを述べている:メソッド=>:削除が動作するはずです(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelperを.html#method-i-form_for)、レンダリングされたhtmlはあまり正しくありません。それはまだ

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

だが、それは次のようになります。私は間違って何をやっている

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

答えて

11

マークニーダムはblog postを持っていて、のform_forがなぜ機能しないのかについて話しています。 「:HTML」:「メソッド」右手の一部のキーを持つハッシュの一部として ほとんどの引数として提供されるように彼は

を言うそれはのform_for」は期待していることが判明しました。

だからからコードを変更する必要があります:私はRailsの3.0アプリケーションでそれを試みたが、生成されたHTMLだった

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

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

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

関連する問題