我需要一个会话来保持30天(使用rails 3.2,cookie store)。
我希望不要在config.session_store中设置全局配置,但在设置会话变量时将其作为选项传递,类似于如何设置到期时间曲奇饼。
这可能吗?
如果没有,我计划全局为所有会话设置30天的到期时间,并在会话var中使用日期变量进行比较/销毁(如果需要)(但我不是不要捣蛋)左右)。
答案 0 :(得分:0)
如果你使用cookies,你可以这样做:
cookies[:foo] = { :value => "bar", :expires => 4.weeks.from_now }
有关详细信息,请参阅http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html。
我不知道如何让变量会话到期,你可能需要手动完成。
类似的东西:
def auth
if session[:foo]
reset_session if session[:last_seen] > 30.days.ago
session[:last_seen] = Time.now
end
end