Changeset 9159
- Timestamp:
- 03/31/08 01:49:57 (5 months ago)
- Files:
-
- trunk/activerecord/lib/active_record.rb (modified) (2 diffs)
- trunk/activerecord/lib/active_record/timestamp.rb (modified) (1 diff)
- trunk/activerecord/test/cases/dirty_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activerecord/lib/active_record.rb
r9127 r9159 63 63 include ActiveRecord::Locking::Optimistic 64 64 include ActiveRecord::Locking::Pessimistic 65 include ActiveRecord::AttributeMethods 66 include ActiveRecord::Dirty 65 67 include ActiveRecord::Callbacks 66 68 include ActiveRecord::Observing … … 74 76 include ActiveRecord::Calculations 75 77 include ActiveRecord::Serialization 76 include ActiveRecord::AttributeMethods77 include ActiveRecord::Dirty78 78 end 79 79 trunk/activerecord/lib/active_record/timestamp.rb
r9157 r9159 31 31 32 32 def update_with_timestamps(*args) #:nodoc: 33 if record_timestamps 33 if record_timestamps && (!partial_updates? || changed?) 34 34 t = self.class.default_timezone == :utc ? Time.now.utc : Time.now 35 35 write_attribute('updated_at', t) if respond_to?(:updated_at) trunk/activerecord/test/cases/dirty_test.rb
r9157 r9159 100 100 def test_partial_update 101 101 pirate = Pirate.new(:catchphrase => 'foo') 102 old_updated_on = 1.hour.ago.beginning_of_day 102 103 103 104 with_partial_updates Pirate, false do 104 105 assert_queries(2) { 2.times { pirate.save! } } 106 Pirate.update_all({ :updated_on => old_updated_on }, :id => pirate.id) 105 107 end 106 108 107 109 with_partial_updates Pirate, true do 108 110 assert_queries(0) { 2.times { pirate.save! } } 111 assert_equal old_updated_on, pirate.reload.updated_on 112 113 assert_queries(1) { pirate.catchphrase = 'bar'; pirate.save! } 114 assert_not_equal old_updated_on, pirate.reload.updated_on 109 115 end 110 116 end