validate_uniqueness_of has the option :case_sensitive, this option is
true by default, there are tests to check that :case_sensitive =>
false is working, but there isn't any test to check that, when set to
true (the default!), is working, in fact it doesn't work at.
There isn't a database agnostic way to do a case sensitive search,
there is in myql (binary like) and sqlite (is case sensitive), but not
a general solution.
I did this patch that add the test to check that case sensitivity is
working and get it to work by doing a ruby (case sensitive) comparison
if case sensitive option is given. To achieve this i changed the find
for a select_all with a construct_finder_sql, so in case it must
compare the value the results aren't objects to be initialitated.
You can find the ticket/patch here: