用户注销后是否需要删除会话变量?

时间:2013-03-22 14:40:28

标签: ruby-on-rails ruby ruby-on-rails-3 session session-variables

在Ruby on Rails中:

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

所以我的问题是: 我们是否需要在用户注销前设置session[:my_var]=nil

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

3 个答案:

答案 0 :(得分:4)

当用户注销时,Ruby on Rails不知道你想要保留什么。

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

因此,删除您需要的会话对象,例如session[:user]=nil,并保留其余部分。如果您有很多要删除的内容,请自行注销帮助。

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

答案 1 :(得分:2)

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

如果您只想清理var do session [:my_var] = nil

请参阅rails中的Sessions

答案 2 :(得分:1)

如果您已正确设置身份验证代码,则应处理内存中的释放。以下是我在其中一个应用中执行此操作的方法:

#sessions_controller
  def destroy
    reset_session
    redirect_to login_path, notice: 'Logged out'
  end