mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
restore behavior of touch for models without :updated_xx [#5439 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
@@ -222,9 +222,8 @@ module ActiveRecord
|
||||
# @brake.touch
|
||||
def touch(name = nil)
|
||||
attributes = timestamp_attributes_for_update_in_model
|
||||
unless attributes.blank?
|
||||
attributes << name if name
|
||||
|
||||
attributes << name if name
|
||||
unless attributes.empty?
|
||||
current_time = current_time_from_proper_timezone
|
||||
changes = {}
|
||||
|
||||
|
||||
@@ -4,14 +4,14 @@ require 'models/owner'
|
||||
require 'models/pet'
|
||||
require 'models/toy'
|
||||
require 'models/car'
|
||||
require 'models/task'
|
||||
|
||||
class TimestampTest < ActiveRecord::TestCase
|
||||
fixtures :developers, :owners, :pets, :toys, :cars
|
||||
fixtures :developers, :owners, :pets, :toys, :cars, :tasks
|
||||
|
||||
def setup
|
||||
@developer = Developer.first
|
||||
@previously_updated_at = @developer.updated_at
|
||||
@car = Car.first
|
||||
end
|
||||
|
||||
def test_saving_a_changed_record_updates_its_timestamp
|
||||
@@ -50,7 +50,7 @@ class TimestampTest < ActiveRecord::TestCase
|
||||
Developer.record_timestamps = true
|
||||
end
|
||||
|
||||
def test_touching_a_different_attribute
|
||||
def test_touching_an_attribute_updates_timestamp
|
||||
previously_created_at = @developer.created_at
|
||||
@developer.touch(:created_at)
|
||||
|
||||
@@ -60,8 +60,16 @@ class TimestampTest < ActiveRecord::TestCase
|
||||
assert_not_equal @previously_updated_at, @developer.updated_at
|
||||
end
|
||||
|
||||
def test_touch_a_record_without_timestamps
|
||||
assert_nothing_raised { @car.touch }
|
||||
def test_touching_an_attribute_updates_it
|
||||
task = Task.first
|
||||
previous_value = task.ending
|
||||
task.touch(:ending)
|
||||
assert_not_equal previous_value, task.ending
|
||||
assert_in_delta Time.now, task.ending, 1
|
||||
end
|
||||
|
||||
def test_touching_a_record_without_timestamps_is_unexceptional
|
||||
assert_nothing_raised { Car.first.touch }
|
||||
end
|
||||
|
||||
def test_saving_a_record_with_a_belongs_to_that_specifies_touching_the_parent_should_update_the_parent_updated_at
|
||||
|
||||
Reference in New Issue
Block a user