2012-04-27 6 views
1

私はそれが必要な方法で動作することができないビューテーブルの中にbutton_toヘルパーメソッドを持っています。私はそれを使用してテーブルを構築しているモデルとは異なるモデルのレコードを削除していますが、IDは持っていませんが、適切なレコードを見つけるための他のパラメータがあります。ここに他の質問に基づいて私は次のsytaxが正しいと思う;button_to not working

<%= button_to 'Remove',mailing_list_edit_path(:arg1 => "value1", :arg2 => "value2"),:method => :delete,:confirm => "are you sure?" %>

が、私はボタンをクリックしたときに、私はこのエラーを取得します。ここで

Routing Error 
No route matches [DELETE] "/assets" 
Try running rake routes for more information on available routes. 

は私のroutes.rbを

resources :mailing_list_edits, only: [:create, :destroy] 

そして、私のコントローラ内のアクション

​​3210

私が間違って何をやっているのエントリですか?

+0

'rake routes'の出力は何ですか? –

答えて

1

、ここにあります。

パスヘルパーは:idなしでは動作しませんでしたので、私はダミーを含んでいました:idこれで、見つけて破壊するのに必要な2つの属性を渡すことができました。だから私のbutton_toは今のように見える。

<%= button_to 'Remove',mailing_list_edit_path(:id => "foobar", :arg1 => "value1", :arg2 => "value2"),:method => :delete,:confirm => "are you sure?" %>

ハックの種類が、それは動作します!

3

私はあなたが破壊するオブジェクトにリンクを張らないと思います。事実、ressourcesによって構築されたdestroyメソッドはメンバールートです。破壊するオブジェクトが必要です。 exempleについては

:私はそれが他の誰かを助ける場合の回避策を見つけ <%= button_to 'Remove',mailing_list_edit_path(@object_to_destroy, :arg1 => "value1", :arg2 => "value2"),:method => :delete,:confirm => "are you sure?" %>

+0

オブジェクトを持っていないのに破壊操作でそれを見つけるのに十分な情報があればどうなりますか? – SteveO7

+0

この場合、コントローラ内に新しいメソッドを持つコレクション(メンバーではない)であるルートを作成する必要があります。しかし、コントローラ内のオブジェクトを破壊するためにあなたのオブジェクトを見つけることができれば、destroyメンバールートを使用する前に、そのオブジェクトを見つけることができます。 –

+0

Cupra、ありがとう、それは参考になったが、私はその問題を解決した作品を見つけた。私の答えを見てください。 – SteveO7