blob: baf217542af5de8ca0dfe69a9557d41b5554dcd1 (
plain) (
tree)
|
|
module ActiveRecord
module Mixins
# Including this mixins will record when objects of the class are created in a datetime column called "created_at"
# and when its updated in another datetime column called "updated_at".
#
# class Bill < ActiveRecord::Base
# include ActiveRecord::Mixins::Touch
# end
#
# bill = Bill.create("amount" => 100)
# bill.created_at # => Time.now at the moment of Bill.create
# bill.updated_at # => Time.now at the moment of Bill.create
#
# bill.update_attribute("amount", 150)
# bill.created_at # => Time.now at the moment of Bill.create
# bill.updated_at # => Time.now at the moment of bill.update_attribute
module Touch
def self.append_features(base)
super
base.before_create :touch_on_create
base.before_update :touch_on_update
end
def touch_on_create
self.updated_at = (self.created_at ||= Time.now)
end
def touch_on_update
self.updated_at = Time.now
end
end
end
end
|