Rails Active Record case insensible trouver

Si, en général, j'aime la sensibilité à la casse dans ma base de données, il y a quelques temps, je trouve ça un de la douleur. user_name et e-mail sont de bons exemples de domaines où je ne veux pas à vous inquiéter au sujet de l'affaire-en particulier lors de la recherche.

Il est assez facile de downcase une chaîne de caractères avant de les enregistrer à l'aide de quelque chose comme:

before_save faire
auto.e-mail.downcase!
fin

De cette façon, le user_name et les mails sont toujours enregistrées en minuscules. Mais quelle est la meilleure façon de find_by_user_name et find_by_email? Je peux bien sûr n'oubliez pas de toujours downcase la chaîne je suis de passage dans ces méthodes--mais ça ne semble pas très SÈCHE.

J'ai pensé sur le remplacement find_by_email et de l'appel de l'original avec super une fois que j'ai downcased l'e-amail, mais je n'avais aucune chance de le comprendre.

Alors, quelle est la meilleure façon de le faire?

PS je ne pense pas que related posts comme celui-ci ( comment puis-je écrire un casse find_by_email pour Rails 3 ) tentent de résoudre le même problème. Sql personnalisé ici avec "bas" serait ointless pour moi puisque j'ai déjà assurée toutes ces valeurs sont plus faibles--il est le seul à venir en ce moment (probablement à partir d'un formulaire où l'utilisateur a entré) dont j'ai besoin downcased.

source d'informationauteur snowguy