Why can I do a case insensitive Validation but not Find?

Why can I do this....

  validates_uniqueness_of "username", :case_sensitive=>false

.... but not this....

   User.where "Xx", :case_sensitive=>false

?

Validation happens through Ruby code, the case sensitivity for database queries is determined by your database (as far as I know, MySQL and MSSQL are case insensitive by default, PostgreSQL isn’t).

Best regards

Peter De Berdt

Why can I do this....

validates_uniqueness_of "username", :case_sensitive=>false

.... but not this....

  User.where "Xx", :case_sensitive=>false

?

Validation happens through Ruby code, the case sensitivity for database queries is determined by your database (as far as I know, MySQL and MSSQL are case insensitive by default, PostgreSQL isn't).

That said, there is no reason why the second expression couldn't downcase the passed string and generate SQL to compare it against the LOWERCASE(column). Without the right index that would be pretty inefficient, but it isn't an unreasonable feature to expect. Maybe someone would feel like implementing it.

Best regards Peter De Berdt

--Greg