在 Ruby on Rails 中:
假设我有session[:my_var] = 'my_val'
所以这里我的问题是:我们需要session[:my_var]=nil
在用户退出之前进行设置吗?
或者它会自动释放它拥有的内存。
在 Ruby on Rails 中:
假设我有session[:my_var] = 'my_val'
所以这里我的问题是:我们需要session[:my_var]=nil
在用户退出之前进行设置吗?
或者它会自动释放它拥有的内存。
当用户退出时,Ruby on Rails 不知道您想要保留什么。
比如说你有一个session[:language]
对每个用户都有用的,甚至是匿名用户。在用户经历了特别选择一种语言的麻烦之后,您不希望将其删除以显示默认语言。
所以,删除你需要的会话对象,喜欢session[:user]=nil
并保留其余的。如果您有很多要删除的内容,请让自己成为注销助手。
如果您知道可以滑动整个会话,请使用reset_session
@adcosta 所说的那样。
如果您正确设置了身份验证代码,则应该可以处理从内存中释放的问题。以下是我在我的一个应用程序中的做法:
#sessions_controller
def destroy
reset_session
redirect_to login_path, notice: 'Logged out'
end