56

一度に複数のオブジェクトを削除しようとしているRailsアプリケーションがあります。

'、'で区切られたIDのセットをrails destroyメソッドに送信しようとしましたが、単一のオブジェクトのみが破棄されます。Rails3の複数のオブジェクトを削除することは可能ですか?

4

5 に答える 5

123

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

アップデート

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

/users?ids[]=1&ids[]=2&ids[]=3
于 2013-01-21T07:41:41.343 に答える
8
Model.delete([1,2,5,6]) 

また

Model.delete_all(["col_name in (?)", [1,2,5,6]])

ids配列を渡すだけです

于 2013-01-21T07:27:36.970 に答える