ROR 3 Michael Hartl教程 - 分配Admin角色使用户无效

时间:2011-04-17 17:31:15

标签: ruby-on-rails-3

我遇到了一个问题,因为我正在关注Michael Hartl的教程,目前正在end of Chapter 10

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

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

我尝试尽可能接近教程,我怀疑我错过了什么,但显然可能。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我得到了它的工作,但我仍然不明白它是如何产生的,是否是它的设计与否。但是,我确实设法注册了Admin用户,我的错误是我在调用user.toggle!(:admin)之前没有在控制台中设置密码字段。
即。

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

并且有效。

答案 2 :(得分:0)

是。我在这里跌跌撞撞。作为rails的新手,让我感到困惑的一部分原因是错误在于我对如何处理测试sqlite db的理解,而不是编写的代码。我认为每次测试开始都保证重新开始(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(点击“文档”)

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

HTH,

佩里