Module: ActiveRecord::Timestamp
- Defined in:
- lib/active_record/timestamp.rb
Overview
Active Records will automatically record creation and/or update timestamps of database objects if fields of the names created_at/created_on or updated_at/updated_on are present. This module is automatically included, so you don’t need to do that manually.
This behavior can be turned off by setting ActiveRecord::Base.record_timestamps = false
. This behavior can use GMT by setting ActiveRecord::Base.timestamps_gmt = true
Class Method Summary collapse
-
.append_features(base) ⇒ Object
:nodoc:.
Instance Method Summary collapse
Class Method Details
.append_features(base) ⇒ Object
:nodoc:
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/active_record/timestamp.rb', line 9 def self.append_features(base) # :nodoc: super base.class_eval do alias_method :create_without_timestamps, :create alias_method :create, :create_with_timestamps alias_method :update_without_timestamps, :update alias_method :update, :update_with_timestamps end end |
Instance Method Details
#create_with_timestamps ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/active_record/timestamp.rb', line 21 def t = ? Time.now.gmtime : Time.now write_attribute("created_at", t) if && respond_to?(:created_at) && created_at.nil? write_attribute("created_on", t) if && respond_to?(:created_on) && created_on.nil? write_attribute("updated_at", t) if && respond_to?(:updated_at) write_attribute("updated_on", t) if && respond_to?(:updated_on) end |
#update_with_timestamps ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/active_record/timestamp.rb', line 32 def t = ? Time.now.gmtime : Time.now write_attribute("updated_at", t) if && respond_to?(:updated_at) write_attribute("updated_on", t) if && respond_to?(:updated_on) end |