Method: ActiveRecord::Persistence::ClassMethods#_delete_record

Defined in:
activerecord/lib/active_record/persistence.rb

#_delete_record(constraints) ⇒ Object

:nodoc:



282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
# File 'activerecord/lib/active_record/persistence.rb', line 282

def _delete_record(constraints) # :nodoc:
  constraints = constraints.map { |name, value| predicate_builder[name, value] }

  default_constraint = build_default_constraint
  constraints << default_constraint if default_constraint

  if current_scope = self.global_current_scope
    constraints << current_scope.where_clause.ast
  end

  dm = Arel::DeleteManager.new(arel_table)
  dm.wheres = constraints

  with_connection do |c|
    c.delete(dm, "#{self} Destroy")
  end
end