Method: M4DBI::Model#delete

Defined in:
lib/m4dbi/model.rb

#deleteObject

Returns true iff the record and only the record was successfully deleted.



456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
# File 'lib/m4dbi/model.rb', line 456

def delete
  if self.class.hooks[:active]
    self.class.hooks[:before_delete].each do |block|
      self.class.hooks[:active] = false
      block.yield self
      self.class.hooks[:active] = true
    end
  end

  st = prepare("DELETE FROM #{table} WHERE #{pk_clause}")
  num_deleted = st.execute( *pk_values ).affected_count
  st.finish
  if num_deleted != 1
    false
  else
    if self.class.hooks[:active]
      self.class.hooks[:after_delete].each do |block|
        self.class.hooks[:active] = false
        block.yield self
        self.class.hooks[:active] = true
      end
    end
    true
  end
end