PostgreSQL, unlike MySQL, treats strings as case sensitive in all circumstances.
This includes
=
and LIKE
Usually this is fine, but some strings (like emails and usernames) should typically be treated as case insensitive.
There are a few workarounds available:
ILIKE
instead of LIKE
lower()
functionlower(email)
Probably the best approach is to just convert emails (and usernames) to lowercase within Rails. Popular authentication libraries (like Clearance and Devise) already do this for you.