【问题标题】:ROR 3 Michael Hartl tutorial - assign Admin role invalidates the userROR 3 Michael Hartl 教程 - 分配管理员角色使用户无效
【发布时间】:2013-08-13 01:22:56
【问题描述】:

我在学习 Michael Hartl 的教程时遇到了一个问题,目前在 end of Chapter 10

当我在 Rails 控制台中使用toggle 将用户的管理属性从false 翻转为true(我正在尝试创建一个管理员用户)时,我成功地这样做了;但是该用户变得无效 - 当我尝试使用该用户的凭据登录应用程序时,我收到一个错误,即凭据不正确(即使它们是正确的)

仅通过检查日志和查看终端,似乎真实性令牌丢失或不正确 - 任何想法我在这里做错了什么?

我尝试尽可能地遵循本教程,我怀疑我错过了什么,但这显然是可能的。

【问题讨论】:

  • 用散文写的所有情况都很难理解。可能显示错误和代码? )

标签: ruby-on-rails-3


【解决方案1】:

我也遇到过类似的问题。看来(也许其他人可以解释原因)当您运行 user.toggle!(:admin) 时,它会将密码重置为“”。为了修复它,我只是在控制台中运行了user.update_attributes(:password => "yourpassword", :password_confirmation => 'yourpassword

【讨论】:

    【解决方案2】:

    是的。我也在这里跌跌撞撞。作为一个 Rails 新手,让我感到困惑的部分原因在于,错误在于我对如何处理测试 sqlite 数据库的理解,而不是编写的代码。我以为每次测试开始时我都能保证重新开始(project_root/db/test.sqlite3 的新副本),但情况并非总是如此。更多内容:

    Rails 3 Tutorial Chapter 11 "Validation failed: Email has already been taken" error

    这里:

    RailsTutorial - chapter 8.4.3 - Test database not clearing after adding user in integration test

    这里:

    http://rubygems.org/gems/database_cleaner(点击“文档”)

    这些讨论大多围绕测试数据库,但交流也让我了解到开发和生产数据库的存在。查看您的目录列表中的 project_root/db 以了解您的 ah-ha!时刻。

    第,

    佩里

    【讨论】:

      【解决方案3】:

      我让它工作了,但我仍然不明白它是如何产生的,以及它是否是设计使然。但是,我确实注册了一个管理员用户,我的错误是我在调用user.toggle!(:admin)之前没有在控制台中设置密码字段。

      u = User.find_by_id(1)
      u.password = "password"
      u.toggle!(:admin)
      

      它成功了。

      【讨论】:

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