class ActiveRecord::Validations::UniquenessValidator

def validation_needed?(klass, record, attribute)

def validation_needed?(klass, record, attribute)
  return true if options[:conditions] || options.key?(:case_sensitive)
  scope = Array(options[:scope])
  attributes = scope + [attribute]
  attributes = resolve_attributes(record, attributes)
  return true if attributes.any? { |attr| record.attribute_changed?(attr) ||
                                          record.read_attribute(attr).nil? }
  !covered_by_unique_index?(klass, record, attribute, scope)
end