Heroku托管网站无法注销

时间:2013-04-04 07:51:41

标签: ruby-on-rails heroku

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

我的会话助手中的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。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我有同样的问题,这是修复。此修复程序的唯一问题是您无法以user / 1身份登录。但是,它适用于其他所有人。从本质上讲,heroku正在关联没有用户/ 1的cookie。至少那是我理解它向我解释的方式。

尝试将会话助手中的当前用户方法更改为:

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