【问题标题】:Trouble assigning user access levels分配用户访问级别时遇到问题
【发布时间】:2015-03-12 21:35:19
【问题描述】:

我正在关注this 教程,因为我想学习如何从头开始创建具有单一角色(每个用户都有一个角色)的用户授权,而不是使用像 rolify 这样的 gem 来为我做这一切,但我'我挂断了分配用户访问级别。

当我在控制台中键入 erin = User.find(9) 时,它会找到我的 test@test.com 用户。我尝试发出erin.admin!命令,但它会引发有关密码的错误? (ActiveRecord::RecordInvalid:验证失败:密码不能为空)。

我也尝试过 erin.access_level = "admin",它在我仍在控制台中时返回 "admin",但在我退出控制台时不再存在,启动 rails 服务器并尝试测试我的测试@test.com 用户在我的应用程序中。

还有其他分配访问级别的方法吗?是我做错了吗?

【问题讨论】:

    标签: ruby-on-rails ruby authentication ruby-on-rails-4


    【解决方案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 是否有任何其他可能导致记录无法保存的验证错误。

    【讨论】:

    • 成功了!!!谢谢 :) 我肯定需要更多练习使用控制台。感谢您的帮助!
    • 我还有一个问题,如何让用户访问我在 heroku 上部署的应用程序的访问级别?我做了 git push heroku master 并运行了迁移,但数据库似乎没有触及已部署的应用程序,因此我的 test@test.com 用户在已部署的应用程序上没有管理员访问级别。
    • 你是否在 heroku 上运行了迁移:heroku run rake db:migrate
    • 是的,运行 heroku run rake db:migrate 并且看起来它完成了迁移
    【解决方案2】:

    对于我的问题的第二部分,我的数据库似乎没有部署到 Heroku,这是因为我在开发数据库中工作,而不是生产数据库。

    为此,我运行了“heroku run rails console”,然后按照上述步骤为用户提供了管理员访问级别。更多内容:https://devcenter.heroku.com/articles/getting-started-with-rails4#console

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多