1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Merge pull request #14469 from tiegz/timestamp_inheritance_fix

Swap Timestamp/Callbacks order in ActiveRecord::Base
This commit is contained in:
Rafael Mendonça França 2014-03-27 16:10:17 -05:00
parent 5cf456a076
commit dd3ea17191
3 changed files with 23 additions and 1 deletions

View file

@ -1,3 +1,7 @@
* Make possible to change `record_timestamps` inside Callbacks.
*Tieg Zaharia*
* Fixed error where .persisted? throws SystemStackError for an unsaved model with a
custom primary key that didn't save due to validation error.

View file

@ -310,8 +310,8 @@ module ActiveRecord #:nodoc:
include Locking::Optimistic
include Locking::Pessimistic
include AttributeMethods
include Callbacks
include Timestamp
include Callbacks
include Associations
include ActiveModel::SecurePassword
include AutosaveAssociation

View file

@ -71,6 +71,24 @@ class TimestampTest < ActiveRecord::TestCase
assert_equal @previously_updated_at, @developer.updated_at
end
def test_saving_when_callback_sets_record_timestamps_to_false_doesnt_update_its_timestamp
klass = Class.new(Developer) do
before_update :cancel_record_timestamps
def cancel_record_timestamps
self.record_timestamps = false
return true
end
end
developer = klass.first
previously_updated_at = developer.updated_at
developer.name = "New Name"
developer.save!
assert_equal previously_updated_at, developer.updated_at
end
def test_touching_an_attribute_updates_timestamp
previously_created_at = @developer.created_at
@developer.touch(:created_at)