我一直在努力通过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。谢谢你的帮助!
答案 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
端