【发布时间】:2010-09-05 06:04:02
【问题描述】:
我的 Rails 应用有一个带有“记住我”复选框的登录框。选中该框的用户即使在关闭浏览器后仍应保持登录状态。我通过将用户的 id 存储在用户的会话中来跟踪用户是否登录。
但是会话在 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
但这似乎是一种 hack,对于如此常见的功能来说,这令人惊讶。有没有更好的办法?
编辑
Gareth 的回答非常好,但我仍然希望熟悉 Rails 2 的人回答(因为它是独一无二的 CookieSessionStore)。
【问题讨论】:
标签: ruby-on-rails ruby http