@@ -74,7 +74,7 @@ def has_paper_trail(options = {})
7474 after_create :record_create , :if => :save_version? if options_on . empty? || options_on . include? ( :create )
7575 if options_on . empty? || options_on . include? ( :update )
7676 before_save :reset_timestamp_attrs_for_update_if_needed! , :on => :update
77- before_update :record_update , :if => :save_version?
77+ after_update :record_update , :if => :save_version?
7878 after_update :clear_version_instance!
7979 end
8080 after_destroy :record_destroy , :if => :save_version? if options_on . empty? || options_on . include? ( :destroy )
@@ -258,7 +258,9 @@ def record_create
258258 :event => paper_trail_event || 'create' ,
259259 :whodunnit => PaperTrail . whodunnit
260260 }
261-
261+ if respond_to? ( :created_at )
262+ data [ PaperTrail . timestamp_field ] = created_at
263+ end
262264 if changed_notably? and self . class . paper_trail_version_class . column_names . include? ( 'object_changes' )
263265 data [ :object_changes ] = self . class . paper_trail_version_class . object_changes_col_is_json? ? changes_for_paper_trail :
264266 PaperTrail . serializer . dump ( changes_for_paper_trail )
@@ -275,12 +277,14 @@ def record_update
275277 :object => self . class . paper_trail_version_class . object_col_is_json? ? object_attrs : PaperTrail . serializer . dump ( object_attrs ) ,
276278 :whodunnit => PaperTrail . whodunnit
277279 }
278-
280+ if respond_to? ( :updated_at )
281+ data [ PaperTrail . timestamp_field ] = updated_at
282+ end
279283 if self . class . paper_trail_version_class . column_names . include? ( 'object_changes' )
280284 data [ :object_changes ] = self . class . paper_trail_version_class . object_changes_col_is_json? ? changes_for_paper_trail :
281285 PaperTrail . serializer . dump ( changes_for_paper_trail )
282286 end
283- send ( self . class . versions_association_name ) . build merge_metadata ( data )
287+ send ( self . class . versions_association_name ) . create merge_metadata ( data )
284288 end
285289 end
286290
0 commit comments