From c80ca4c7803b4e8ed7f125ada9acc6b7c499af5f Mon Sep 17 00:00:00 2001 From: Thiago Pinto Date: Wed, 19 Mar 2014 21:13:03 -0400 Subject: ActiveRecord#touch should accept multiple attributes #14423 --- activerecord/lib/active_record/persistence.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'activerecord/lib/active_record') 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 -- cgit v1.2.3