Я обнаружил пару из ссылок , предупреждающих против хранения непримитивных типов данных в сеансе, но все они были просто предупреждениями и сводились к: Хранение сложных объектов - это " Особенно обескуражен "[sic], но если вы решите, что вам нужно ... ну, просто будьте осторожны.
Во всяком случае, я вроде как согласился с мыслью о том, чтобы таблица пользователей была удвоена по сравнению с таблицей сеансов, но сериализация все еще кажется немного отрывочной. Если вы просто пытаетесь сократить количество запросов к БД, как насчет хранения идентификаторов и использования :joins
при поиске вашего пользователя (может потребоваться немного хакеров, чтобы это сработало при загрузке сеанса по умолчанию). Это позволяет избежать проблем синхронизации и схематичности сериализации, и при этом генерирует только один запрос к БД. Просто убедитесь, что вы используете :joins
, а не :include
, так как последний генерирует запрос для каждой таблицы .
Надеюсь, это поможет!