如何在Rails 3中同时销毁多个对象

Cyb*_*ber 45 ruby-on-rails ruby-on-rails-3

我有一个Rails应用程序,试图一次删除多个对象.

我试过发送一组由','分隔的id到rails destroy方法,但它只销毁单个对象.是否可以删除rails 3中的多个对象.

Eug*_*rke 99

destroy_all通过为每个实例化记录调用destroy方法来销毁记录匹配条件.所以对象的回调被执行了.

Model.destroy_all(:status => "inactive")
Model.where(:id => [1,2,3,4,5]).destroy_all
Model.where(:id => 1..5).destroy_all
Run Code Online (Sandbox Code Playgroud)

UPDATE

User.where(:id => params[:ids]).destroy_all

/users?ids[]=1&ids[]=2&ids[]=3
Run Code Online (Sandbox Code Playgroud)


Sac*_*n R 6

Model.delete([1,2,5,6]) 
Run Code Online (Sandbox Code Playgroud)

要么

Model.delete_all(["col_name in (?)", [1,2,5,6]])
Run Code Online (Sandbox Code Playgroud)

只需传递ids数组

  • 删除与销毁不是一回事. (15认同)