所以我试图删除两个带有1个链接的对象。
我喜欢做这样的事情:
<%= link_to "Remove Items", [Item1, Item2], :confirm => 'Are you sure?', :method => :delete %>
但它显然没有做到这一点..任何想法?
答案 0 :(得分:2)
将项目的id传递给delete方法,然后修改你的delete方法,如果你有多个id,则迭代id。
如果您需要帮助,请告诉我。
答案 1 :(得分:2)
这是Devin 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
答案 2 :(得分:1)
我会创建一个指向ajax控制器操作的链接,该操作将删除这两个项目。编写javascript并不是那么糟糕。