2013-04-04 98 views
1

我一直在通过Hartl教程和一些railscasts来学习RoR。在实现railscast“记住密码”复选框后,我不能再退出Heroku托管站点上的示例用户。一切在当地都很好,但在Heroku上,如果我尝试签名,Flash会告诉我已成功注销,但实际上并没有发生任何事情。即使在数据库迁移后,问题仍然存在。我认为我的问题与this one类似,但我看到没有人回答这个问题。有没有人有任何想法?我正在使用bcrypt-ruby宝石(版本3.0.1)。Heroku托管站点无法注销

我在我的会议辅助sign_in动作看起来是这样的:

def sign_in(user) 
    if params[:remember_me] 
    cookies.permanent[:remember_token] = user.remember_token 
    else 
    cookies[:remember_token] = user.remember_token 
    end 
    self.current_user = user 
end 

而且我sign_out动作看起来是这样的:

def sign_out 
    self.current_user = nil 
    cookies.delete(:remember_token) 
end 

@abhir - 我觉得这些都是从日志中的相关位:

2013-04-04T14:13:34+00:00 app[web.1]: Started DELETE "/signout" for 108.228.60.12 at 2013-04-04 14:13:34 +0000 
2013-04-04T14:13:34+00:00 app[web.1]: Parameters: {"authenticity_token"=>"<TOKENWASHERE>"} 
2013-04-04T14:13:34+00:00 app[web.1]: Redirected to https://quiet-spire-8115.herokuapp.com/ 
2013-04-04T14:13:34+00:00 app[web.1]: Processing by SessionsController#destroy as HTML 
2013-04-04T14:13:34+00:00 app[web.1]: Completed 302 Found in 1ms (ActiveRecord: 0.0ms) 
2013-04-04T14:13:34+00:00 heroku[router]: at=info method=POST path=/signout host=quiet-spire-8115.herokuapp.com fwd="108.228.60.12" connect=11ms service=15ms status=302 bytes=105 
2013-04-04T14:13:34+00:00 app[web.1]: Started GET "/" for 108.228.60.12 at 2013-04-04 14:13:34 +0000 
2013-04-04T14:13:34+00:00 app[web.1]: Processing by StaticPagesController#home as HTML 

正如你所看到的,该网站是here。谢谢你的帮助!

+0

您可以发布您的Heroku'上logs'一些signout结果?你还有一个链接到heroku网站? – abhir 2013-04-04 08:12:31

+0

看起来像你的饼干洁具没有正确更新。另外,在sign_out方法中,我看不到任何Flash消息。 – taro 2013-04-04 11:06:19

+0

@taro - 感谢您的建议!我删除了cookie,但似乎没有解决问题。此外,闪光消息是在控制器(不是帮手),似乎工作正常。谢谢! – DTrain 2013-04-04 14:35:21

回答

0

我有同样的问题,这里是修复。此修复程序唯一的问题是您无法保持以用户/ 1身份登录。但是,对于其他人来说,它工作正常。本质上,heroku将没有cookie和用户/ 1关联起来。至少我是这样理解这个问题的。

试着改变你的当前用户的方法在我们的会议帮手此:

def current_user 
    if cookies[:remember_token].present? 
    @current_user ||= User.find_by_remember_token(cookies[:remember_token]) 
end 

+0

似乎已经做到了!谢谢!我不明白为什么用户#1无法拥有cookie,但它似乎正在工作! – DTrain 2013-04-09 06:26:13