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

时间:2012-07-19 00:43:02

标签: ruby-on-rails session

我在rails应用程序中创建了几个测试用户来测试登录。他们通过设置会话自动登录。

一旦我对用户登录感到满意,我就进入了rails控制台并删除了用户 User.last.delete

但是,现在当我尝试加载localhost: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吗?

2 个答案:

答案 0 :(得分:1)

清除您的Cookie,这就是造成问题的原因。

答案 1 :(得分:0)

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

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

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

localhost:3000/logout