module SoftDeletable::MacroMethods

Public Instance Methods

acts_as_soft_deletable(opts={}) click to toggle source
# File lib/soft-deletable.rb, line 42
def acts_as_soft_deletable(opts={})
  cattr_accessor :aasd_dependents, :aasd_depends_on, :table_name

  self.aasd_dependents = opts[:dependents] || {}
  self.aasd_depends_on = opts[:depends_on] || {}
  self.table_name = opts[:table_name] || self.to_s.tableize
  self.send(:include, InstanceMethods)

  # need to add the table name to the query to avoid ambiguous columns
  default_scope where("#{table_name}.deleted_at IS NULL")
  scope :deleted, where("#{table_name}.deleted_at IS NOT NULL")
end