Hi All, Question: I got the impression somewhere that a session instance was created automatically when generating a rails app. However, to initialize my session with some empty hashes, I had to precede the initialization with an assignment to session, a la: class ApplicationController < ActionController::Base ===================================== session={} %w[customers invoices payments].each { |tbl| session[tbl] = {} } Is this the "Ruby/Rails Way"? Problem: I''m trying to trace my session hashes using logger.debug. I got a complaint about using session''s each method, so I tried the following statement in a method I defined in ApplicationController: logger.debug (defined? session && session.respond_to?("each") )? (session.each {|p| " " + p.inspect}) : (defined? session ? "''session'' doesn''t respond to ''each''" : "''session'' undefined" ) The message I get is: undefined method `each'' for #<CGI::Session:0x3d52190> despite the fact that I''ve got a protection against executing the session.each clause. It seems to me that this error is propagated at compile time, so I need a better way to handle possibly undefined methods. Any suggestions? Thanks in Advance, Richard --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Well, I finally realized that I really did have a syntax error, so I recoded the offending line in a somewhat verbose way as follows: if ( defined?(session) && session.respond_to?("each") ) logger.debug "#{session.each {|p| '' '' + p.inspect}}" else if defined?(session) logger.debug " Problem with session#each" else logger.debug " ''session'' undefined" end end I still do wonder about my initialization of session, however. Regards, Richard Richard wrote:> Hi All, > > Question: > I got the impression somewhere that a session instance was created > automatically when generating a rails app. However, to initialize my > session with some empty hashes, I had to precede the initialization > with an assignment to session, a la: > > class ApplicationController < ActionController::Base > =====================================> session={} > %w[customers invoices payments].each { |tbl| session[tbl] = {} } > > Is this the "Ruby/Rails Way"? > > Problem: > I''m trying to trace my session hashes using logger.debug. I got a > complaint about using session''s each method, so I tried the following > statement in a method I defined in ApplicationController: > > logger.debug (defined? session && session.respond_to?("each") )? > (session.each {|p| " " + p.inspect}) : (defined? session ? > "''session'' doesn''t respond to ''each''" : "''session'' undefined" ) > > The message I get is: > undefined method `each'' for #<CGI::Session:0x3d52190> > despite the fact that I''ve got a protection against executing the > session.each clause. > > It seems to me that this error is propagated at compile time, so I need > a better way to handle possibly undefined methods. Any suggestions? > > Thanks in Advance, > Richard--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Well, I finally got a succint way of doing the logging of session: logger.debug "session.each {|p| logger.debug '' '' + p.inspect} yields:" session.each {|p| logger.debug '' '' + p.inspect} That''s what I used to do, but I got lost in the "syntax jungle". I still do wonder about my initialization of session, however, as repeated here from by original post: Question: I got the impression somewhere that a session instance was created automatically when generating a rails app. However, to initialize my session with some empty hashes, I had to precede the initialization with an assignment to session, a la: class ApplicationController < ActionController::Base ===================================== session={} %w[customers invoices payments].each { |tbl| session[tbl] = {} } Is this the "Ruby/Rails Way"? Regards, Richard Richard wrote:> Well, I finally realized that I really did have a syntax error, so I > recoded the offending line in a somewhat verbose way as follows: > > if ( defined?(session) && session.respond_to?("each") ) > logger.debug "#{session.each {|p| '' '' + p.inspect}}" > else > if defined?(session) > logger.debug " Problem with session#each" > else > logger.debug " ''session'' undefined" > end > end > > I still do wonder about my initialization of session, however. > > Regards, > Richard > > Richard wrote: > > Hi All, > > > > Question: > > I got the impression somewhere that a session instance was created > > automatically when generating a rails app. However, to initialize my > > session with some empty hashes, I had to precede the initialization > > with an assignment to session, a la: > > > > class ApplicationController < ActionController::Base > > =====================================> > session={} > > %w[customers invoices payments].each { |tbl| session[tbl] = {} } > > > > Is this the "Ruby/Rails Way"? > > > > Problem: > > I''m trying to trace my session hashes using logger.debug. I got a > > complaint about using session''s each method, so I tried the following > > statement in a method I defined in ApplicationController: > > > > logger.debug (defined? session && session.respond_to?("each") )? > > (session.each {|p| " " + p.inspect}) : (defined? session ? > > "''session'' doesn''t respond to ''each''" : "''session'' undefined" ) > > > > The message I get is: > > undefined method `each'' for #<CGI::Session:0x3d52190> > > despite the fact that I''ve got a protection against executing the > > session.each clause. > > > > It seems to me that this error is propagated at compile time, so I need > > a better way to handle possibly undefined methods. Any suggestions? > > > > Thanks in Advance, > > Richard--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---