在rails中删除了一个用户,但会话仍然存在 - 如何清除它?

在rails中删除了一个用户,但会话仍然存在 - 如何清除它?

问题描述:

我在我的Rails应用程序中创建了多个测试用户来测试登录。他们通过设置会话自动登录。在rails中删除了一个用户,但会话仍然存在 - 如何清除它?

一旦我感到满意的用户登录,我走进了轨道控制台,并删除了用户 User.last.delete

但是,现在当我尝试加载本地主机:3000,我的浏览器仍在寻找用户数14,我刚删除的人。

ActiveRecord::RecordNotFound in StaticPagesController#home 

Couldn't find User with id=14 

app/controllers/application_controller.rb:7:in `current_user' 
app/views/static_pages/home.html.erb:2:in `_app_views_static_pages_home_html_erb___2558135612319095530_70269927858560' 

Request 

Parameters: 

None 

即使重新启动服务器,并与rake db:reset完全清除数据库没有帮助---不应该这样破坏任何会话问题告诉我的应用程序的外观ID = 14?

+0

您删除的用户,但它看起来像会话仍然引用到它。你应该删除localhost的cookie。这应该解决它。 – Zabba 2012-07-19 00:46:54

清除您的cookies,这就是导致问题的原因。

如果清除cookie不起作用,您可以尝试使用负责创建会话的控制器。 您sholud有方法,它破坏会话,例如:

def destroy 
    session[:user_id] = nil 
    redirect_to root_path, notice: 'Logged out' 
end 

添加一些路线,然后只需在浏览器中浏览到

localhost:3000/logout