2011-02-19 6 views
0

スカフォールドアプリケーションのWidgetsControllerに新しいメソッド 'delete_stuff'を追加しています。我々は 試合を追加した路線で新しいカスタムメソッドのlink_を追加するための正しい 'rails'方法は何ですか?

'ウィジェット/ delete_stuff /:ID' => 'ウィジェット#のdelete_stuff'

私は手動で

<a href="/widget/delete_stuff/<% widget.id %>">My Custom Delete Stuff</a> 

ようなHTML(GET)リンクを作成することができますしかし、それは上の不良です非常に多くのレベル(DELETEではなくGETを使用し、CONFIRMダイアログ、isnt DRYなどを許可しません)

問題カスタムメソッドにURLヘルパーを使用する方法がわかりません...次のようなことをしてください:

<% link_to 'DeleteStuff', @widget, :confirm => 'Are you sure?', :method => :delete %> 

しかし、htmlがレンダリングされると無視されます。

link_toの使い方に根本的な欠点がありますが、何か助けていただければ幸いです!

乾杯、ヘルパーはあなたに利用可能であるかURLを知って JP

答えて

1

最初に実行rake routes。あなたは、で始まる行が表示されることがあります

delete_stuff_widget 

あなたは、あなたの意見やコントローラにあなたが使用する名前を取得するためにpathまたはurlを追加することができます。新しいリンクは次のようになります:

link_to "DeleteStuff", delete_stuff_widget_path(@widget), :confirm => "Sure?", :method => :delete 
2

最初は等号がないようです。読み込みする必要があります。

<%= link_to 'DeleteStuff', @widget, :confirm => 'Are you sure?', :method => :delete %> 
2

をあなたのルーティングを解決し、あなたの追加アクションdeleteメソッドは、これを試して作ります。 routes.rbを

resources :widgets do 
    member do 
    delete 'delete_stuff' 
    end 
end 

関連する問題