A general question about railstutorial.org sessions helper methods

Hi guys,

As you probably guess I’m pretty new to RoR. I’m going through
railstutorial.org, which I would recommend to other beginners like me,
at some point in chapter 8 there’s a bit of code I don’t really get in
sessions helper.

Here’s the code I’m talkng about :

module SessionsHelper

def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user

def current_user=(user)
@current_user = userend

def current_user
@current_user ||=


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?

… I’m kind of confused. If someone could explain that a bit, I would
appreciate. Thx.

On Tuesday, October 23, 2012 2:11:31 PM UTC+1, Jean-David wrote:

What does current_user=(user) do?
And what/who calls current_user when?

Typically you’re calling current_user, for example to check whether
is a logged in user, so that you know what user is creating comments,

As I read it, self.current_user= is just a bit of an optimisation - if
user has just signed in then you know what the current_user is so you
prime the cache (@current_user) with the user value you’ve been passed


Hmm I’m still confused.
But thx for helping.

Le mardi 23 octobre 2012 18:22:12 UTC+2, Frederick C. a crit :

I am just about to finish chapter 7! So many times I have wished I could
grab a chat with another person doing the tutorial, it’s a lonely
journey I found :wink:

Hi Ruby-Forum.com User,

You’re not alone anymore… it’s really a small world after all!
Good to know there’s someone out there going through the same pain as
do :slight_smile:

I’m using google talk, feel free to add me to your contacts.

Le mercredi 24 octobre 2012 18:23:12 UTC+2, Ruby-Forum.com User a crit :