method
build_relation
rails latest stable - Class:
ActiveRecord::Validations::UniquenessValidator
build_relation(klass, attribute, value)private
No documentation available.
# File activerecord/lib/active_record/validations/uniqueness.rb, line 111
def build_relation(klass, attribute, value)
relation = klass.unscoped
comparison = relation.bind_attribute(attribute, value) do |attr, bind|
return relation.none! if bind.unboundable?
if !options.key?(:case_sensitive) || bind.nil?
klass.connection.default_uniqueness_comparison(attr, bind)
elsif options[:case_sensitive]
klass.connection.case_sensitive_comparison(attr, bind)
else
# will use SQL LOWER function before comparison, unless it detects a case insensitive collation
klass.connection.case_insensitive_comparison(attr, bind)
end
end
relation.where!(comparison)
end