module DatabaseValidations::Validations

Attributes

_database_validations_fallback[RW]

Public Instance Methods

create_or_update(*args, &block) click to toggle source
Calls superclass method
# File lib/database_validations/lib/validations.rb, line 16
def create_or_update(*args, &block)
  options = args.extract_options!

  if options[:validate] == false
    super
  else
    rescue_from_database_exceptions { super }
  end
end
valid?(context = nil) click to toggle source
Calls superclass method
# File lib/database_validations/lib/validations.rb, line 11
def valid?(context = nil)
  self._database_validations_fallback = true
  super(context)
end

Private Instance Methods

perform_validations(options = {}) click to toggle source
# File lib/database_validations/lib/validations.rb, line 37
def perform_validations(options = {})
  options[:validate] == false || valid_without_database_validations?(options[:context])
end
rescue_from_database_exceptions(&block) click to toggle source
# File lib/database_validations/lib/validations.rb, line 28
def rescue_from_database_exceptions(&block)
  self._database_validations_fallback = false
  self.class.connection.transaction(requires_new: true, &block)
rescue ActiveRecord::InvalidForeignKey, ActiveRecord::RecordNotUnique => e
  raise e unless Rescuer.handled?(self, e)

  raise ActiveRecord::RecordInvalid, self
end