On Tuesday, October 23, 2012 2:11:31 PM UTC+1, Jean-David wrote:
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
enddef current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
end
What does self.current_user = user do?
It calls the current_user=(user) method passing user as a parameter, right? But do we need the user parameter? I got rid of it and it works fine, as far as I can see.
What does current_user=(user) do?
And what/who calls current_user when?
Typically you're calling current_user, for example to check whether there is a logged in user, so that you know what user is creating comments, posts etc.
As I read it, self.current_user= is just a bit of an optimisation - if the user has just signed in then you know what the current_user is so you can prime the cache (@current_user) with the user value you've been passed
Fred