Hey all, i'm rather new to rails and was curious if ActiveRecord
implemented anything like is_active where the delete functions would
just mark records as inactive, vs deleting rows. (similar to created_at,
etc). I need a history of transactions, and this is how I would code in
other languages. Any advice? Is there are smarter way to implement this?

Make your Active Records "paranoid." Deleting them does not delete the row, but set a deleted_at field. Find is overloaded to skip deleted records.

I'd say keep it more explicit and use the scope_out plugin:

class Foo < AR::Base
  scope_out :enabled, :conditions => 'disabled_at is null'

  def enabled?

  def disabled?

  def disable
    update_attribute :disabled_at,

Foo.find_enabled(:all, :limit => 30, :offset => 60).each do |foo|