Фактически оно было изменено из хранилища сеансов на основе файлов на хранилище сеансов на основе файлов cookie, а не из ActiveRecord. Я могу ошибаться, но я считаю, что ActiveRecord был жизнеспособным вариантом для веб-ферм или распределенных установок, когда хранилище на основе файлов было по умолчанию. С тех пор как было создано хранилище на основе файлов cookie, сценарий веб-фермы стал беспроблемным, поскольку он хранится на стороне клиента. Сегодня ActiveRecord по-прежнему является жизнеспособным вариантом, когда вы хотите хранить большее количество данных, чем позволяет cookie, когда вы хотите сократить накладные расходы на данные, передаваемые в каждом запросе (использование ActiveRecord означает, что вы только передаете session_id), или если Вы хотите установить централизованный сеанс.
Я считаю, что при использовании хранилища сеансов ActiveRecord скорость не является для меня фактором. В сеансе на основе файлов cookie вы обычно ограничиваете то, что храните в переменных сеанса, так что они, как правило, являются токенами, используемыми для поиска данных в базе данных. Если данные не нужно сохранять после сеанса, то целесообразно сохранить объект в сеансе, а не просто токен, потому что вы все равно попадете в базу данных для связанных записей. Если объект, который вы хотите извлечь, включает в себя дорогостоящую операцию извлечения, и вам она нужна в течение всего времени сеанса, возможно, имеет смысл сохранить этот объект в сеансе, а не просто в токене, и ударить по базе данных только один раз, когда сеанс впервые установлено.
Файлы cookie - это здорово, но помните также, что пользователь может удалить их, когда захочет, зашифровать или нет. Учитывая растущую обеспокоенность по поводу конфиденциальности, а также наличие множества плагинов для браузеров, которые условно блокируют файлы cookie, и программного обеспечения, которое очищает файлы cookie, вы можете взвесить все за и против использования файлов cookie и сеанса, поддерживаемого БД.
@ joshsz хорошо подходит для использования несессионного cookie для сохранения данных вне сессии. Помните, что у сессии конечное время жизни.