viernes, 4 de enero de 2013

CookieOverflow y las sesiones de Rails

Si al acceder a nuestra aplicación en Rails, nos da el error:

ActionDispatch::Cookies::CookieOverflow error

Es muy posible que se deba a que almacenamos en sesión más datos de los permitidos (4Kb) . Esto pasa si usamos la cookie_store de Rails.

Si vamos a necesitar almacenar datos en la sesión de usuario, lo mejor es hacerlo en base de datos. La modificación es muy sencilla. Se crean las tablas de sesión con el generador de Rails y se cambia el
session_store para que use active_record_store.

Ejecutamos:
rake db:sessions:create
rake db:migrate
Y en el fichero 'config/initializers/session_store.rb':

MyApp::Application.config.session_store :cookie_store, key: '_myapp_session'

Así nos evitaremos estos problemas de espacio, ya que generalmente hay bastantes cosas que conviene tenerlas en sesión para una mayor agilidad en la aplicación.