Module: ActiveRecord::Timestamp
- Defined in:
- lib/active_record/timestamp.rb
Overview
Active Record automatically timestamps create and update if the table has fields created_at/created_on or updated_at/updated_on.
Timestamping can be turned off by setting
<tt>ActiveRecord::Base.record_timestamps = false</tt>
Keep in mind that, via inheritance, you can turn off timestamps on a per model basis by setting record_timestamps
to false in the desired models.
class Feed < ActiveRecord::Base
self. = false
# ...
end
Timestamps are in the local timezone by default but can use UTC by setting
<tt>ActiveRecord::Base.default_timezone = :utc</tt>
Class Method Summary collapse
-
.included(base) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#create_with_timestamps ⇒ Object
:nodoc:.
-
#update_with_timestamps ⇒ Object
:nodoc:.
Class Method Details
.included(base) ⇒ Object
:nodoc:
20 21 22 23 24 25 26 27 28 |
# File 'lib/active_record/timestamp.rb', line 20 def self.included(base) #:nodoc: super base.alias_method_chain :create, :timestamps base.alias_method_chain :update, :timestamps base.cattr_accessor :record_timestamps, :instance_writer => false base. = true end |
Instance Method Details
#create_with_timestamps ⇒ Object
:nodoc:
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/active_record/timestamp.rb', line 30 def #:nodoc: if t = self.class.default_timezone == :utc ? Time.now.utc : 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 end |
#update_with_timestamps ⇒ Object
:nodoc:
42 43 44 45 46 47 48 49 |
# File 'lib/active_record/timestamp.rb', line 42 def #:nodoc: if t = self.class.default_timezone == :utc ? Time.now.utc : Time.now write_attribute('updated_at', t) if respond_to?(:updated_at) write_attribute('updated_on', t) if respond_to?(:updated_on) end end |