Hello everyone,

I'm learning Rails through the railtutorial.org book. I'm following very
closely every detail taught in the book. However, there's something that I
don't seem to find a solution. I have the following snippet of code:

   def authenticate(email, submitted_password)
      user = find_by_email(email)
      #user = where(:email => email).first
      (user && user.has_password?(submitted_password)) ? user : nil
    end

    def authenticate_with_salt(id, cookie_salt)
      user = find_by_id(id)
      #user = where(:id => id)
      (user && user.salt == cookie_salt) ? user : nil
    end
  end

in the authenticate method, the find_by_id(id) call is returning nil. Going
to the console, the function is not available to me whenever I call it. The
funny thing is that it does not throw an exception (it's heavily using
meta-programming), so the method is generated on the fly, I guess. The thing
is: the method is being called, but always returns nil. Does anyone know why
is this happening? I had to replace the code by user = where(:email =>
email).first, for example. It works flawlessly.  Can it be something related
to the Ruby version I'm using?

$ ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]

$ rails -v
Rails 3.0.9

$ gem list activerecord
activerecord (3.0.9, 3.0.1)
I appreciate any help ...

Thanks,
-fred

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to