У моего Rails-приложения есть окно с надписью "помнить меня". Пользователи, которые проверяют этот флажок, должны оставаться в системе даже после закрытия своего браузера. Я отслеживаю, зарегистрированы ли пользователи, сохраняя их идентификатор в сеансе пользователя.
Но сеансы реализованы в Rails как файлы cookie сеанса, которые не являются постоянными. Я могу сделать их упорными:
class ApplicationController < ActionController::Base
before_filter :update_session_expiration_date
private
def update_session_expiration_date
options = ActionController::Base.session_options
unless options[:session_expires]
options[:session_expires] = 1.year.from_now
end
end
end
Но это похоже на хак, что удивительно для таких общих функций. Есть ли лучший способ?
Edit
Ответ Gareth довольно хорош, но мне все равно нужен ответ от знакомого с Rails 2 (из-за этого уникального CookieSessionStore
).