Hi.
How to use session in ruby on rails ?
I try to make it work for hours, but it still doesn''t work...
In my controller I have this:
def identification
@current_user = User.new(params[:user])
ok = false
redir = ''login_failed''
@remote_user = User.find(:all)
@remote_user.each do |r_user|
if (r_user.login == @current_user.login and
r_user.pass == @current_user.pass)
ok = true
end
end
if (ok)
session[:user_login] = params[:login]
session[:user_access] = params[:access]
redir = ''list_article''
end
redirect_to :action => redir
end
I want to display the name of logged person.
In my views I have:
<%= if session[:user_login] then
"OK #{session[:user_login]}"
else
"Php RoX !"
end %>
But "session[:user_login]" is always empty.
Thanks.
--
Posted via http://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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
CptPingu wrote:> How to use session in ruby on rails ? > I try to make it work for hours, but it still doesn''t work...You''re doing it basically right: if you set attributes of session, you should be able to read them back. Your code to set the session variables looks very confused though. I''d bet that there''s at least one major bug in your identification method. You should try logging the contents of the variables at various points in it and use that to work out what''s going on. - Pete --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
this piece of code:
@remote_user = User.find(:all)
@remote_user.each do |r_user|
if (r_user.login == @current_user.login and
r_user.pass == @current_user.pass)
ok = true
end
you''re iterating over an array of all of the users in the table, and
you
set the ''ok'' variable to true, if one of them matches. this is
great,
but the next loop in the iteration will set ''ok'' back to
false, since
i''m guessing we''re not talking about a universe where all of
the users
are a duplicate of the same person.
mmm.
if you add in a
ok = true
return
it should work.
else
"Php RoX !" (not)
--
Posted via http://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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Better way to do the same:
def identification
if User.find(:conditions => ["login = ? and pass =
?",params[:user][:login],params[:user][:pass]])
session[:user_login] = params[:login]
session[:user_access] = params[:access]
redirect_to :action => ''list_article''
else
redirect_to :action => ''login_failed''
end
end
> def identification
> @current_user = User.new(params[:user])
> ok = false
> redir = ''login_failed''
> @remote_user = User.find(:all)
> @remote_user.each do |r_user|
> if (r_user.login == @current_user.login and
> r_user.pass == @current_user.pass)
> ok = true
> end
> end
> if (ok)
> session[:user_login] = params[:login]
> session[:user_access] = params[:access]
> redir = ''list_article''
> end
> redirect_to :action => redir
> end
>
> But "session[:user_login]" is always empty.
--
Posted via http://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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---