4

在 Ruby on Rails 中:

假设我有session[:my_var] = 'my_val'

所以这里我的问题是:我们需要session[:my_var]=nil在用户退出之前进行设置吗?

或者它会自动释放它拥有的内存。

4

3 回答 3

4

当用户退出时,Ruby on Rails 不知道您想要保留什么。

比如说你有一个session[:language]对每个用户都有用的,甚至是匿名用户。在用户经历了特别选择一种语言的麻烦之后,您不希望将其删除以显示默认语言。

所以,删除你需要的会话对象,喜欢session[:user]=nil并保留其余的。如果您有很多要删除的内容,请让自己成为注销助手。

如果您知道可以滑动整个会话,请使用reset_session@adcosta 所说的那样。

于 2013-03-22T15:10:53.990 回答
2

如果要清理应用会话,请使用 reset_session。

如果你只想清理一个 var 做 session[:my_var]=nil

请参阅rails 中的会话

于 2013-03-22T14:47:55.893 回答
1

如果您正确设置了身份验证代码,则应该可以处理从内存中释放的问题。以下是我在我的一个应用程序中的做法:

#sessions_controller
  def destroy
    reset_session
    redirect_to login_path, notice: 'Logged out'
  end
于 2013-03-22T15:46:58.337 回答