I need to reference the user ID variable in a view and I am uncertain of the proper syntax. The user ID is stored in a session variable. What is the proper syntax to use? (Also, are there any useful references for ruby syntax online? I can''t seem to find any good ones.) For reference, here is a dump of the session info: --- !ruby/object:CGI::Session data: &id001 user: !ruby/object:User attributes: id: "1" password: c90121c2fbb54ec2133fb0c868dc1b04e354fe66 login: jsmith flash: !map:ActionController::Flash::FlashHash {} -- 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 -~----------~----~----~----~------~----~------~--~---
-- -- wrote:> I need to reference the user ID variable in a view and I am uncertain of > the proper syntax. The user ID is stored in a session variable. What is > the proper syntax to use? > > (Also, are there any useful references for ruby syntax online? I can''t > seem to find any good ones.) > > For reference, here is a dump of the session info: > > --- !ruby/object:CGI::Session > data: &id001 > user: !ruby/object:User > attributes: > id: "1" > password: c90121c2fbb54ec2133fb0c868dc1b04e354fe66 > login: jsmith > flash: !map:ActionController::Flash::FlashHash {}Session variables are accessed in the session hash - as in session[''var'']. If your session variable is ''user'', then in a view you would access it as such: <%= session[''user''] %> The old version of the pickaxe ruby book is available at http://www.rubycentral.com/book/index.html but sooner or later you''ll want the latest edition. Then there''s Why''s Poignant Guide to Ruby at http://poignantguide.net/ruby/. c. -- 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 -~----------~----~----~----~------~----~------~--~---
session[:id] = 3 a = session[:id] Zon http://www.ZONator.com -- -- wrote:> I need to reference the user ID variable in a view and I am uncertain of > the proper syntax. The user ID is stored in a session variable. What is > the proper syntax to use? > > (Also, are there any useful references for ruby syntax online? I can''t > seem to find any good ones.) > > For reference, here is a dump of the session info: > > --- !ruby/object:CGI::Session > data: &id001 > user: !ruby/object:User > attributes: > id: "1" > password: c90121c2fbb54ec2133fb0c868dc1b04e354fe66 > login: jsmith > flash: !map:ActionController::Flash::FlashHash {} > > -- > 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 -~----------~----~----~----~------~----~------~--~---
Thanks for the reply. Neither of those seem to work. Here is my code from the view: <%= link_to_remote( "1", {:url => { :controller => "ratings", :action => "ratethis", :pageid => @page.id, :rateabletype => "xyz", :rating => 1}}, :class => ''one-star'', :name => ''1 star out of 5'') %> Here is the action in the controller for adding the record to the database. All fields are being inserted successfully except for the userid field. As I mentioned earlier, I am storing the user ID value in the session and simply need to use it here: def ratethis @rating = Rating.new(:rating => params[:rating], :pageid => params[:pageid], :rateabletype => params[:rateabletype], :date=> Time.now, :userid => NEEDTHIS) if @rating.save flash[:notice] = ''Rating was successfully created.'' redirect_to :action => ''list'' else render :action => ''new'' end end -- 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 -~----------~----~----~----~------~----~------~--~---
This is not the a session variable, is a request variable: I can''t try right now, but you should pass userid in the link_to_remote , :name => ''1 star out of 5'', userid => ''33'' then you read it with params[:userid] Zon http://www.ZONator.com -- -- wrote:> Thanks for the reply. Neither of those seem to work. Here is my code > from the view: > > <%= link_to_remote( "1", {:url => { :controller => "ratings", :action => > "ratethis", :pageid => @page.id, :rateabletype => "xyz", :rating => 1}}, > :class => ''one-star'', :name => ''1 star out of 5'') %> > > > Here is the action in the controller for adding the record to the > database. All fields are being inserted successfully except for the > userid field. As I mentioned earlier, I am storing the user ID value in > the session and simply need to use it here: > > > def ratethis > @rating = Rating.new(:rating => params[:rating], :pageid => > params[:pageid], :rateabletype => params[:rateabletype], :date=> > Time.now, :userid => NEEDTHIS) > > if @rating.save > flash[:notice] = ''Rating was successfully created.'' > redirect_to :action => ''list'' > else > render :action => ''new'' > end > > end > > -- > 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 -~----------~----~----~----~------~----~------~--~---
> :userid => session[:id]This really doesn''t work? Try adding ''debug(session)'' to your layout to make sure everything is right in your session variable before submitting. Also, if you want to simplify your creates, remove the '':date=> Time.now'' and add a ''created_at'' field to your table. Rails will automatically fill this in when a record is added. -- 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 -~----------~----~----~----~------~----~------~--~---
Looking at the dump of the session in your first message you''ve put the whole user object in the session, so to get the id of that user you''d have to do session[:user].id In general you should be careful about what you put in the session (beyond basic stuff like hashes, arrays, strings, numbers etc...). The main reason is that if your User class changes significantly then rails can be unable to unserialize the session from wherever you''ve stored it, leaving your users with a rather unhelpful error message. In this case I''d just put the user id in the session Fred -- 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 -~----------~----~----~----~------~----~------~--~---