Forum: Ruby on Rails find_by_email dynamic method returning new

Posted by Fred (Guest)
on 2011-10-01 16:36
(Received via mailing list)
Hello everyone,

I have a rails app which uses email as login name. At some point, I
have to search the user, in the User model by email. For some reason,
the method User.find_by_email(email) returns nil, even though the user
is in the database.

The same applies for any find_by_* method that searches by any
database column. I was able to find the user using the User.find

Does anyone have an idea of what might be going on?

thanks,
-fred
Posted by Peter Vandenabeele (petervandenabeele)
on 2011-10-01 17:14
(Received via mailing list)
On Thu, Sep 22, 2011 at 7:21 PM, Fred <frederiko@gmail.com> wrote:

> Does anyone have an idea of what might be going on?
>

Is this ruby 1.9?

Maybe ... this is related to string encoding of the columns ?

Check the string encoding of the string by which you are searching
and the one that is used in the database.

Please show exact code samples for how you used User.find (with
succesful result) and User.find_by_email (without result).

For this scenario of encoding issues, please show the email.encoding
on the result from from the find
=> User.first.email.encoding

HTH,

Peter
Posted by Aaron Gray (adobegray)
on 2012-01-17 14:08
Hi Fred,

I was having the same issue. I finally resolved it by defining the 
find_by_email method in my app/models/user.rb file...

Example:
-----------
    def self.find_by_email(email)
      where(:email => email).first
    end
-----------

That did it for me!

Good luck,

Aaron Gray
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.