# File lib/active_resource/validations.rb, line 71
    def save_with_validation(options={})
      perform_validation = options[:validate] != false

      # clear the remote validations so they don't interfere with the local
      # ones. Otherwise we get an endless loop and can never change the
      # fields so as to make the resource valid.
      @remote_errors = nil
      if perform_validation && valid? || !perform_validation
        save_without_validation
        true
      else
        false
      end
    rescue ResourceInvalid => error
      # cache the remote errors because every call to <tt>valid?</tt> clears
      # all errors. We must keep a copy to add these back after local
      # validations.
      @remote_errors = error
      load_remote_errors(@remote_errors, true)
      false
    end