1

我正在关注 Hartl 的 Ruby on Rails 教程,刚刚完成了有关登录和退出应用程序的章节。一切都在 localhost 上完美运行,但是当部署到 heroku 时,它会自动将您作为示例用户登录,并且退出按钮不再起作用。

就像我之前所说的,我可以在 localhost 上毫无问题地退出。它似乎只在heroku上被打破。

我还应该补充一点,如果我在以本地主机身份登录时创建一个新用户,它实际上会创建一个新用户并以该新用户身份登录。您甚至可以作为新用户注销。但是,一旦您以新用户身份注销,它就会重新以示例用户身份登录。

如果有帮助,这里是示例应用程序:https ://serene-bayou-7583.herokuapp.com/

有谁知道这可能是什么原因造成的?我什至不知道我应该发布代码的哪一部分来帮助解决问题。

编辑:堆栈不会让我回答我自己的问题,所以这里是解决这个问题的其他人的方法

对于有此问题的其他人,这是我的问题的答案。从本质上讲,heroku 似乎将 NIL 与示例用户匹配。所以我们稍微修改一下代码来阻止这种行为。唯一的副作用是无法以示例用户身份保持登录状态,否则它可以正常工作!在您的会话助手中更改此设置:

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

1 回答 1

0

对于有此问题的其他人,这是我的问题的答案。从本质上讲,heroku 似乎将 NIL 与示例用户匹配。所以我们稍微修改一下代码来阻止这种行为。唯一的副作用是无法以示例用户身份保持登录状态,否则它可以正常工作!在您的会话助手中更改此设置:

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

结尾

于 2013-04-08T02:51:03.820 回答