On Apr 29, 3:04 am, John Merlino <li...@ruby-forum.com> wrote:
> Hey all,
>
> I am looking through this example Rails app where a user session is
> stored in cookie so user signs up in one rails app and navigates to
> another while still being signed in as unique user. I come across this
> line of code where I don't understand where some of these methods are
> coming from:
>
>     @session = Session.create!(:user => @user)
>     cookies[:session_token] = {:value => @session.token, :domain =>
> Settings.session_token_domain}
>
> 1) I look in Session class and there is no create! class method. Yet it
> works and doesn't throw an exception.
>

With so little context it is hard to say.

> I do understand when that create! method is called, the constructor is
> initialized first and generates a random number and assigns it to the
> token property (self.token) of the specific instance. And then stores
> the instance to the @session instance variable.
>
>  2) I did a global search of app and found no property or method called
> "session_token_domain", although there is a Session class but
> session_token_domain is not declared anywhere in it. The only other
> location is in settings.yml, which has something like this:
>

Again, we know nothing about your app. At a wild guess, maybe the
settings class reads settings.yml and created methods for all the
attributes defined in there.

Fred
> production:
>   <<: *default_settings
>   session_token_domain: xxxxx
>
> So I'm not sure why this doesn't throw an exception either.
>
> 3) Finally I see that Rails supports a hash called cookies that can pass
> strings or symbols. Here a key is created and a value which contains
> subhashes is passed into it. So we store a unique session token for
> user. What value does this add rather than just assigning the user id in
> the sessions hash which is actually done in the same method:
>
> session[:user_id] = @user.id
>
> Why store them both?
>
> Thanks for response
>
> --
> Posted viahttp://www.ruby-forum.com/.

-- 
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to