-
Type: Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
class User
include Mongoid::Document
validates_uniqueness_of :email , :case_sensitive => false
end
User.create!(:email => 'test@test.com')
User.create!(:email => 'TEST@TEST.COM')
Both users are saved. This should not be the case. If we change line 29 of uniquness.rb to be
criteria = @klass.where(attribute => (options[:case_sensistive] ? value : Regexp.new(value, Regexp::IGNORECASE)))
and change line 27 to be
criteria = criteria.where(attribute =>( options[:case_sensistive] ? value : Regexp.new(value, Regexp::IGNORECASE)), :_id =>
{'$ne' => document._id})That should do the trick.
It could also be done with:
criteria = @klass.where(attribute => Regexp.new(value, !options[:case_sensistive]) )
and
criteria = criteria.where(attribute => Regexp.new(value, !options[:case_sensistive]), :_id => {'$ne' => document._id}
)