我发现如果用户使用电子邮件注册并在我执行以下操作时在其电子邮件中使用大写字母,那么我将无效。
示例:
username = Dillan@example.com
params[:user][:email] = dillan@example.com
user = User.find_by_email(params[:user][:email])
user.nil?
=>真
如何在没有区分大小写问题的情况下搜索电子邮件,或者如何编写不区分大小写的find_by_email?
答案 0 :(得分:16)
如果用户(比如说X)有一封电子邮件'Dillan@example.com',那么
User.find(:all, :conditions => ["lower(email) =?", "dillan@example.com"])
应该返回用户X.我没有复制情况,但这是我猜你基本上需要做的。
或者,更好的是,使用@MrTheWalrus
指出的地方而不是找到User.where('lower(email) = ?', "dillan@example.com").first