在Rails 3中删除带有一个链接的两条记录

时间:2011-05-30 00:48:04

标签: ruby-on-rails ruby ruby-on-rails-3

所以我试图删除两个带有1个链接的对象。

我喜欢做这样的事情:

<%= link_to "Remove Items", [Item1, Item2], :confirm => 'Are you sure?', :method => :delete %>

但它显然没有做到这一点..任何想法?

3 个答案:

答案 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并不是那么糟糕。