Hi, Im developing an application in Rails 2.02.
Everything seems to work fine but the problems begin when I try to put
some data in the session.
I have a model in proyect/models:
class Result
attr_accessor :names, :urls, :images
def initialize
@names = Array.new
@urls = Array.new
@images = Array.new
end
end
Controller:
@variable = Result.new
#code that fills up the values in the result arrays.
session[:result] = @result
I fill these attributes from a controller. At the end, if I try to put
the variable into the session I get the msg:
Status: 500 Internal Server Error Content-Type: text/html
500 Internal Server Error
Any ideas? thanks!
This is the trace of the log
Rendering /Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/
action_controller/templates/rescues/layout.erb (internal_server_error)
/!\ FAILSAFE /!\ Mon Dec 24 14:19:02 +0100 2007
Status: 500 Internal Server Error
CGI::Session::CookieStore::CookieOverflow
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
session/cookie_store.rb:112:in `close’
Is it too big what I’m trying to store in the session?
On 24 Dec 2007, at 12:58, Javier Q. wrote:
@names = Array.new
I fill these attributes from a controller. At the end, if I try to put
the variable into the session I get the msg:
There should be a full stack trace in your log files.
Are you putting anything unserializable in your session?
Fred
On Dec 24, 2007, at 2:20 PM, Javier Q. wrote:
Rendering /Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/
action_controller/templates/rescues/layout.erb (internal_server_error)
/!\ FAILSAFE /!\ Mon Dec 24 14:19:02 +0100 2007
Status: 500 Internal Server Error
CGI::Session::CookieStore::CookieOverflow
/Library/Ruby/Gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
session/cookie_store.rb:112:in `close’
Is it too big what I’m trying to store in the session?
In your snippet there’s this comment:
#code that fills up the values in the result arrays.
I guess the resulting cookie value after you populate the inner arrays
(think whole object tree marshalled + Base64 encoding + two dashes +
digest) is > 4K.
Do you really need such an object in the session. If yes then you’d
need to switch to a different storage.
– fxn
Thanks. I didn’t know that you could only store 4Kb in size in the
session. I guess that I will use a database to store it then.
Thanks for your fast reply!