所以我試圖用rails中的1個鏈接刪除兩個對象。在Rails 3中刪除一條鏈接的兩條記錄3
我很樂意做這樣的事情:
<%= link_to "Remove Items", [Item1, Item2], :confirm => 'Are you sure?', :method => :delete %>
但它顯然沒有這樣的伎倆..任何想法?
所以我試圖用rails中的1個鏈接刪除兩個對象。在Rails 3中刪除一條鏈接的兩條記錄3
我很樂意做這樣的事情:
<%= link_to "Remove Items", [Item1, Item2], :confirm => 'Are you sure?', :method => :delete %>
但它顯然沒有這樣的伎倆..任何想法?
我會創建一個鏈接到ajax控制器操作,將刪除這兩個項目。編寫JavaScript並沒有那麼糟糕。
將項目的id傳遞給delete方法,然後修改你的delete方法遍歷id,如果你有多個。
如果您需要幫助,請告訴我。
這是德溫M的答案的擴展。
爲此,您不必使用JavaScript。你可以簡單地傳遞要刪除到這樣的路由幫助對象的ID:
<%= link_to "Delete these", destroy_many_items_path(:ids => [1,2,3]), :method => :delete ... %>
然後你會在你的config/routes.rb
文件來定義這條路線:
resources :items do
collection do
delete :destroy_many
end
end
然後在控制器:
def destroy_many
items = Item.find(params[:ids])
items.each { |item| item.destroy }
...
end
或者像米沙指出,在意見:
def destroy_many
Item.where(:id => params[:ids]).delete_all
...
end
你爲什麼要重複它們? 'Item.where(:id => params [:ids])。delete_all'怎麼樣? – Mischa 2011-05-30 05:40:49
我使用的項目是不同的類,所以我不認爲像這樣傳遞它們會起作用? – Elliot 2011-05-30 01:16:17
不,它不會,我不知道你會如何安然刪除這些項目。你是否與這兩個對象上的任何關聯一起工作? – 2011-05-30 01:29:17
nope:\我想我可能會在控制器中創建一個自定義方法,併發送一對夫婦參數,指定要刪除的內容。 – Elliot 2011-05-30 01:39:03