aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/persistence.rb
diff options
context:
space:
mode:
authorThiago Pinto <tapgyn@gmail.com>2014-03-19 21:13:03 -0400
committerThiago Pinto <tapgyn@gmail.com>2014-03-19 21:13:03 -0400
commitc80ca4c7803b4e8ed7f125ada9acc6b7c499af5f (patch)
treedc8c9fa419dc7f4a5fe7b320dab0c4126625c4c5 /activerecord/lib/active_record/persistence.rb
parent8cea8ae278c0e0417e5d58a387cc5d31c0590251 (diff)
downloadrails-c80ca4c7803b4e8ed7f125ada9acc6b7c499af5f.tar.gz
rails-c80ca4c7803b4e8ed7f125ada9acc6b7c499af5f.tar.bz2
rails-c80ca4c7803b4e8ed7f125ada9acc6b7c499af5f.zip
ActiveRecord#touch should accept multiple attributes #14423
Diffstat (limited to 'activerecord/lib/active_record/persistence.rb')
-rw-r--r--activerecord/lib/active_record/persistence.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb
index d85fad1e13..eb45289b2e 100644
--- a/activerecord/lib/active_record/persistence.rb
+++ b/activerecord/lib/active_record/persistence.rb
@@ -412,6 +412,7 @@ module ActiveRecord
#
# product.touch # updates updated_at/on
# product.touch(:designed_at) # updates the designed_at attribute and updated_at/on
+ # product.touch(:started_at, :ended_at) # updates started_at, ended_at and updated_at/on attributes
#
# If used along with +belongs_to+ then +touch+ will invoke +touch+ method on associated object.
#
@@ -432,11 +433,11 @@ module ActiveRecord
# ball = Ball.new
# ball.touch(:updated_at) # => raises ActiveRecordError
#
- def touch(name = nil)
+ def touch(*names)
raise ActiveRecordError, "cannot touch on a new record object" unless persisted?
attributes = timestamp_attributes_for_update_in_model
- attributes << name if name
+ attributes.concat(names)
unless attributes.empty?
current_time = current_time_from_proper_timezone