【发布时间】:2013-04-08 10:51:03
【问题描述】:
我正在关注 Hartl 的 Ruby on Rails 教程,刚刚完成了有关登录和退出应用程序的章节。一切都在 localhost 上运行良好,但是当部署到 heroku 时,它会自动让您以示例用户身份登录,并且退出按钮不再起作用。
就像我之前所说的,我可以在 localhost 上毫无问题地退出。它似乎只在heroku上被打破。
我还应该补充一点,如果我在以本地主机身份登录时创建一个新用户,它实际上会创建一个新用户并以该新用户身份登录您。您甚至可以作为新用户注销。但是,一旦您以新用户身份注销,它就会重新以示例用户身份登录。
如果有帮助,这里是示例应用:https://serene-bayou-7583.herokuapp.com/
有人知道是什么原因造成的吗?我什至不知道我应该发布代码的哪一部分来帮助解决问题。
编辑:Stack 不会让我回答我自己的问题,所以这里是解决此问题的其他人的方法
对于遇到此问题的其他人,这是我的问题的答案。从本质上讲,heroku 似乎将 NIL 与示例用户匹配。所以我们稍微修改一下代码来阻止这种行为。唯一的副作用是无法以示例用户身份保持登录状态,否则它可以正常工作!在您的会话助手中更改此设置:
def current_user
if cookies[:remember_token].present?
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
end
【问题讨论】:
-
注册和退出都没问题
-
我刚刚修复了它,感谢您花时间查看!如果其他人有这个问题,这里是你的会话助手中的修复
def current_user if cookies[:remember_token].present? @current_user ||= User.find_by_remember_token(cookies[:remember_token]) end end -
+1 用于 serene-bayou 子域。这里也一样!
标签: ruby-on-rails heroku