def record_change(record, action)
      # skip unless something has actually changed
      return if action == :update && record.previous_changes.empty?
      # dispatch the record change to all known strategies
      @strategy_by_attribute.values.each { |strategy| strategy.record_change(record, action) }
    end
def record_change(record, action)
      # skip unless something has actually changed
      return if action == :update && record.previous_changes.empty?
      # dispatch the record change to all known strategies
      @strategy_by_attribute.values.each { |strategy| strategy.record_change(record, action) }
    end
Update the version store and the record store (used by callbacks)
 @param record the updated record (possibly with
 @param action one of :create, :update or :destroy