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

Timestamp values should be present on callbacks

This reverts commit dd3ea17191 and add a
regression test.

Fixes #15418
This commit is contained in:
Rafael Mendonça França 2014-06-09 17:25:20 -03:00
parent 9664661f7b
commit dddbccb25a
4 changed files with 15 additions and 23 deletions

View file

@ -532,10 +532,6 @@
*Luke Steensen*
* 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

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

View file

@ -71,24 +71,6 @@ 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)
@ -399,6 +381,19 @@ class TimestampTest < ActiveRecord::TestCase
assert_not_equal time, pet.updated_at
end
def test_timestamp_column_values_are_present_in_the_callbacks
klass = Class.new(ActiveRecord::Base) do
self.table_name = 'people'
before_create do
self.born_at = self.created_at
end
end
person = klass.create first_name: 'David'
assert_not_equal person.born_at, nil
end
def test_timestamp_attributes_for_create
toy = Toy.first
assert_equal [:created_at, :created_on], toy.send(:timestamp_attributes_for_create)

View file

@ -529,6 +529,7 @@ ActiveRecord::Schema.define do
t.references :best_friend
t.references :best_friend_of
t.integer :insures, null: false, default: 0
t.timestamp :born_at
t.timestamps
end