2012-04-27 54 views
1

我在視圖表中有一個button_to幫助器方法,我無法按照需要的方式工作。我正在使用它來刪除一個不同於創建表的模型中的記錄,而我沒有:id,但是我確實有其他參數可以找到正確的記錄。基於這裏的其他問題,我認爲以下的sytax應該是正確的;button_to不起作用

<%= 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'的輸出是什麼? – 2012-04-27 13:56:27

回答

1

我發現了一個解決辦法,在情況下,它會幫助別人,在這兒呢。

如果沒有:id,路徑助手將無法工作,因此我包含了一個dummy:id,現在我能夠傳遞我需要查找和銷燬的兩個屬性。所以我的button_to現在看起來像這樣;

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

一個黑客攻擊的一種,但它的工程!

3

我想你不要給對象毀滅給你鏈接。事實上,由資源構建的銷燬方法是成員路線:它需要銷燬對象。

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

+0

如果我沒有物品,但有足夠的信息可以在銷燬行爲中找到它,該怎麼辦? – SteveO7 2012-04-27 21:59:48

+0

在這種情況下,您需要使用控制器中的新方法創建一個集合(不是成員)的路由。但是,如果你可以在你的控制器中找到你的對象來銷燬它,你可以在你的視圖中使用destroy成員路由。 – 2012-04-30 12:57:25

+0

丘普拉,謝謝你,這是有幫助的,但我找到了解決問題的工作。看到我的答案。 – SteveO7 2012-04-30 17:59:40