在Ruby on Rails中:
假设我有session[:my_var] = 'my_val'
所以我的问题是:
我们是否需要在用户注销前设置session[:my_var]=nil
?
或者它会自动释放它拥有的内存。
答案 0 :(得分:4)
当用户注销时,Ruby on Rails不知道你想要保留什么。
比如说,你有一个session[:language]
对每个用户都有用,甚至是匿名用户。在用户特别难以选择默认语言之后,您不希望将其删除以显示默认语言。
因此,删除您需要的会话对象,例如session[:user]=nil
,并保留其余部分。如果您有很多要删除的内容,请自行注销帮助。
如果您知道可以滑动整个会话,请使用像@adcosta那样的reset_session
。
答案 1 :(得分:2)
答案 2 :(得分:1)
如果您已正确设置身份验证代码,则应处理内存中的释放。以下是我在其中一个应用中执行此操作的方法:
#sessions_controller
def destroy
reset_session
redirect_to login_path, notice: 'Logged out'
end