Вы должны использовать куки
cookies[:<name>] = { :value => "<value>", :expires => <time of expiry>}
Первая причина этого заключается в том, что хранение данных в сеансе означает, что данные хранятся в памяти вашего сервера. В конце концов, если вы будете хранить эти данные в памяти в течение такого большого количества времени, ваша память заполнится
Вторая причина заключается в том, что если вам нужно перезапустить ваш сервер (или что-то, что требует перезапуска службы apache / iis / ror / web hosting), данные сеанса будут очищены. Сессия обычно предназначена для кратковременного хранения данных.
Теперь есть такие вещи, как SqlSessionStores (например, http://railsexpress.de/blog/articles/2005/12/19/roll-your-own-sql-session-store), так что вы можете хранить свои данные сеанса гораздо дольше, без ограничения заполнения памяти сервера и без ограничения потери всех данных сеанса, если вы перезапустите ваш Однако имейте в виду, что они по-прежнему предназначены для кратковременного хранения, я бы не стал использовать их для долговременного хранения.
Cookie - сохраняется до тех пор, пока пользователь не удалит куки в браузере или пока не истечет срок действия куки; долговременное некритическое хранение
Сеанс - сохраняется до тех пор, пока пользователь не удалит файлы cookie в браузере (файлы cookie используются для отслеживания пользователя и идентификации его сеанса), пока веб-служба / сервер не перезапустится или сеанс не истечет; кратковременное некритическое хранение
SqlSession - сохраняется до тех пор, пока пользователь не удалит куки в браузере или не истечет время сеанса; кратковременное некритическое хранение