I would like to apply logical delete in my application(Instead of
permanently deleting a record just have been marked as deleted). I have
Added available column to all tables with default value true. Now I
want common place to write the following code for all models.
Write the instance method which make ‘available’ column value false
when user clicks on destroy link.
Merge the ‘available=true’ condition to all ActiveRecord’s queries
while fetching the records.
With reference Rails extending
ActiveRecord::Basehttp://stackoverflow.com/questions/2328984/rails-extending-activerecordbase,
I decided to use monkey patch to do above. Created monkey patch file in
config/initializer/active_record_patch.rb:
class ActiveRecord::Base
def inactive
update_attribute(:available, false)
end
default_scope :available => true
end
Getting following error when add the default_scope
/gems/ruby-1.9.2-p290/gems/activerecord-3.0.9/lib/active_record/base.rb:1212:in
class_of_active_record_descendant’: undefined methodabstract_class?’ for
Object:Class (NoMethodError)