over 1 year ago
Bug描述:在网站部署到 Heroku 上以后,管理员帐号无法进入后台页面,点击一直在刷新首页,而在本地(唯一一个管理员账号)却可以。

错误页面:

正确页面:

解决思路:
  • 既然是 Heroku 上出问题,先执行 heroku run rails console 来查看管理员账号有没有,如果没有就要手动添加
  • 实在搞不定,还是要去 Slack 求助,因为这样比较高效
Debug:
1.执行 heroku run rails console ,再执行 User.all

看到 admin@gmail.com 这个账号是管理员账号,因为 :is_admin => true

这样应该就可以登录进后台页面了啊!!!

2.好吧!看来这个bug我自己是没法解决了,去 Slack 求助吧!

第一位 @milesmao助教 的解决办法跟我一样:确定是否为管理员账号。在经过助教的一再确认后,我决定新注册一个账号,再将其提升为管理员账号再进行尝试,就在这个过程中我又遇到一个bug:在 heroku run rails console 里,提升账号时出错。

我原本以为 id=4 ,就代表 User.fourth ,其实并不一定,也有可能在删除账号再新建账号时 id=4 的情况。这里也学到里一个新指令: u = User.find(:id) ,这样就一定能找到你想要的那个账号信息。

在第二位 @baohua助教 的一步一步指导下找到了bug的问题所在!

在执行 git grep -5 require_is_admin 指令后,显示出所有写有 require_is_admin 的代码样式,在这里找到了问题所在:

在做教材的时候没有做完整,在最后一段代码中, require_is_admin 被我写死了,只能是 admin@1 这个账号才是管理员账号。

反思:

在做教材的时候没有认真看完每一步导致了这个bug,而在当时并不会出现问题,一直会拖到现在才出错卡住。

← ORID记录4/23 ORID记录4/24 →
 
comments powered by Disqus