How to overwrite devise user session attributes?

315 views
Skip to first unread message

Mauro

unread,
Sep 21, 2012, 6:50:41 AM9/21/12
to rubyonrails-talk
I'm using devise for authentication:
In my user model I've do:

def name
"#{first_name} #{last_name}"
end

to have a name method.
After signed in successfully I can use current_user.name.
I want to overwrite name method if the user is guest.
That's the use case:

The guest user signed in successfully, now its name is, for example,
"guest" " guest".
current_user.name is guest guest.
After signed in I present a form with a name input field and a surname
input field.
Submitting the form I want to overwrite the name value with input fields values.
So if name and surname are: "newguest" "newguest" I want
current_user.name have newguest newguest.
There a way to do this?
Thank you.

Mauro

unread,
Sep 22, 2012, 10:05:04 AM9/22/12
to rubyonrails-talk
No ideas?

Hassan Schroeder

unread,
Sep 22, 2012, 10:33:08 AM9/22/12
to rubyonra...@googlegroups.com
On Sat, Sep 22, 2012 at 7:05 AM, Mauro <mrsa...@gmail.com> wrote:

>> The guest user signed in successfully, now its name is, for example,
>> "guest" " guest".
>> current_user.name is guest guest.
>> After signed in I present a form with a name input field and a surname
>> input field.
>> Submitting the form I want to overwrite the name value with input fields values.
>> So if name and surname are: "newguest" "newguest" I want
>> current_user.name have newguest newguest.
>> There a way to do this?

Save the new "names" in session or directly in a cookie.

--
Hassan Schroeder ------------------------ hassan.s...@gmail.com
http://about.me/hassanschroeder
twitter: @hassan

Mauro

unread,
Sep 22, 2012, 11:03:47 AM9/22/12
to rubyonra...@googlegroups.com
On 22 September 2012 16:33, Hassan Schroeder <hassan.s...@gmail.com> wrote:
> On Sat, Sep 22, 2012 at 7:05 AM, Mauro <mrsa...@gmail.com> wrote:
>
>>> The guest user signed in successfully, now its name is, for example,
>>> "guest" " guest".
>>> current_user.name is guest guest.
>>> After signed in I present a form with a name input field and a surname
>>> input field.
>>> Submitting the form I want to overwrite the name value with input fields values.
>>> So if name and surname are: "newguest" "newguest" I want
>>> current_user.name have newguest newguest.
>>> There a way to do this?
>
> Save the new "names" in session or directly in a cookie.

Yes I want to save in session but how can access the session?
user_session hash is empty.

Hassan Schroeder

unread,
Sep 22, 2012, 11:32:03 AM9/22/12
to rubyonra...@googlegroups.com
On Sat, Sep 22, 2012 at 8:03 AM, Mauro <mrsa...@gmail.com> wrote:

> Yes I want to save in session but how can access the session?
> user_session hash is empty.

session["foo"] = "bar"

Of course it's empty until you put something there :-)

Mauro

unread,
Sep 22, 2012, 12:26:09 PM9/22/12
to rubyonra...@googlegroups.com
On 22 September 2012 17:32, Hassan Schroeder <hassan.s...@gmail.com> wrote:
> On Sat, Sep 22, 2012 at 8:03 AM, Mauro <mrsa...@gmail.com> wrote:
>
>> Yes I want to save in session but how can access the session?
>> user_session hash is empty.
>
> session["foo"] = "bar"
>
> Of course it's empty until you put something there :-)

Sorry but I don't undestand very well.
In https://github.com/plataformatec/devise is said that user_session
is an helper to access the session of the successfully signed in user.
So after signed in I expect to find something in user_session so that
I can change some of its values.

Hassan Schroeder

unread,
Sep 22, 2012, 1:03:19 PM9/22/12
to rubyonra...@googlegroups.com
On Sat, Sep 22, 2012 at 9:26 AM, Mauro <mrsa...@gmail.com> wrote:

> Sorry but I don't undestand very well.
> In https://github.com/plataformatec/devise is said that user_session
> is an helper to access the session of the successfully signed in user.
> So after signed in I expect to find something in user_session so that
> I can change some of its values.

I don't know about devise's "user_session" offhand, but it doesn't really
matter. You can put anything you want (within reason!) in session in
your app.

session["guest_first_name"] = "Bob"

Whatever. Just try it.
Reply all
Reply to author
Forward
0 new messages