在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?
答
清除您的cookies,这就是导致问题的原因。
答
如果清除cookie不起作用,您可以尝试使用负责创建会话的控制器。 您sholud有方法,它破坏会话,例如:
def destroy
session[:user_id] = nil
redirect_to root_path, notice: 'Logged out'
end
添加一些路线,然后只需在浏览器中浏览到
localhost:3000/logout
您删除的用户,但它看起来像会话仍然引用到它。你应该删除localhost的cookie。这应该解决它。 – Zabba 2012-07-19 00:46:54