我正在关注this教程,因为我想学习如何从头开始创建具有单一角色的用户授权(每个用户都有一个角色),而不是使用像rolify这样的宝石我,但我已经挂断了分配用户的访问级别。
当我在控制台中输入erin = User.find(9)时,它会找到我的test@test.com用户。我尝试发出erin.admin!命令,但它会引发有关密码的错误? (ActiveRecord :: RecordInvalid:验证失败:密码不能为空)。
我也尝试过erin.access_level =" admin"返回" admin"当我退出控制台时,我仍然在控制台中但不再存在,启动rails服务器并尝试在我的应用程序中测试我的test@test.com用户。
还有其他方法来分配访问级别吗?我只是做错了吗?
答案 0 :(得分:1)
无法保存用户记录,因为存在需要密码的验证。我不知道密码格式是否有特殊规则,但您可以轻松设置密码以便保存用户:
user = User.find(9)
user.password = 'Test1234'
user.password_confirmation = 'Test1234' # you might need this as well
user.access_level = 'admin'
user.save #=> true
如果user.save
返回false,请检查user.errors
是否有任何其他可能导致记录无法保存的验证错误。
答案 1 :(得分:0)
对于我的问题的第二部分,我的数据库似乎没有部署到Heroku,这是因为我在dev db中工作,而不是生产db。
要做到这一点,我跑了" heroku运行rails console"然后按照上述步骤为用户提供管理员访问级别。更多信息:https://devcenter.heroku.com/articles/getting-started-with-rails4#console