def delete_all(conditions = nil)
      raise ActiveRecordError.new("delete_all doesn't support limit scope") if self.limit_value

      IdentityMap.repository[symbolized_base_class] = {} if IdentityMap.enabled?
      if conditions
        where(conditions).delete_all
      else
        statement = arel.compile_delete
        affected = @klass.connection.delete(statement, 'SQL', bind_values)

        reset
        affected
      end
    end
def delete_all(conditions = nil)
      raise ActiveRecordError.new("delete_all doesn't support limit scope") if self.limit_value

      IdentityMap.repository[symbolized_base_class] = {} if IdentityMap.enabled?
      if conditions
        where(conditions).delete_all
      else
        statement = arel.compile_delete
        affected = @klass.connection.delete(statement, 'SQL', bind_values)

        reset
        affected
      end
    end
Deletes the records matching +conditions+ without instantiating the records first, and hence not
 calling the +destroy+ method nor invoking callbacks. This is a single SQL DELETE statement that
 goes straight to the database, much more efficient than +destroy_all+. Be careful with relations
 though, in particular <tt>:dependent</tt> rules defined on associations are not honored. Returns
 the number of rows affected.

 ==== Parameters

 * +conditions+ - Conditions are specified the same way as with +find+ method.

 ==== Example

   Post.delete_all("person_id = 5 AND (category = 'Something' OR category = 'Else')")
   Post.delete_all(["person_id = ? AND (category = ? OR category = ?)", 5, 'Something', 'Else'])
   Post.where(:person_id => 5).where(:category => ['Something', 'Else']).delete_all

 Both calls delete the affected posts all at once with a single DELETE statement.
 If you need to destroy dependent associations or call your <tt>before_*</tt> or
 +after_destroy+ callbacks, use the +destroy_all+ method instead.