一度に複数のオブジェクトを削除しようとしているRailsアプリケーションがあります。
'、'で区切られたIDのセットをrails destroyメソッドに送信しようとしましたが、単一のオブジェクトのみが破棄されます。Rails3の複数のオブジェクトを削除することは可能ですか?
一度に複数のオブジェクトを削除しようとしているRailsアプリケーションがあります。
'、'で区切られたIDのセットをrails destroyメソッドに送信しようとしましたが、単一のオブジェクトのみが破棄されます。Rails3の複数のオブジェクトを削除することは可能ですか?
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
Model.delete([1,2,5,6])
また
Model.delete_all(["col_name in (?)", [1,2,5,6]])
ids配列を渡すだけです