Siempre me han enseñado que almacenar objetos en una sesión era una mala idea. En su lugar, las ID deben almacenarse para recuperar el registro cuando sea necesario.Almacenar objetos en una sesión en Rails
Sin embargo, tengo una aplicación que me pregunto es una excepción a esta regla. Estoy construyendo una aplicación de tarjeta de memoria, y las palabras que se cuestionan están en una tabla en la base de datos cuyo esquema no cambia. Quiero guardar las palabras que están siendo examinadas en una sesión, para que un usuario pueda terminar donde comenzaron en caso de que pasen a una página separada.
En este caso, ¿es posible guardar estas palabras como objetos en la base de datos? Si es así, ¿por qué? La razón por la que pregunto es porque la prueba está diseñada para moverse rápidamente, y odiaría desperdiciar una llamada a la base de datos para recuperar un registro que nunca cambia en primer lugar. Sin embargo, tal vez haya otros aspectos negativos de una gran sesión de los que no tengo conocimiento.
* Para el registro, he intentado guardarlo en la memoria caché con los métodos de Memcache incorporados en Rails 2.3, pero aparentemente tiene un tamaño máximo por artículo de 1MB.
¿Un tamaño máximo de caché de 1MB? Eso no suena bien. –
Estaba sorprendido como primero, pero estaba teniendo problemas muy extraños hasta que descubrí esto: http://code.google.com/p/memcached/wiki/FAQ#Why_are_items_limited_to_1_megabyte_in_size? Aunque me encantaría solo una forma de almacenarlo en caché, ya que resolvería mi problema. –
¡Oh, es un máximo de 1 MB * por elemento de caché *! He editado tu pregunta para aclarar esa parte. –