我遇到了一个问题,因为我正在关注Michael Hartl的教程,目前正在end of Chapter 10。
当我在rails控制台中使用toggle
将用户的admin属性从false
翻转到true
时(我正在尝试创建管理员用户),我成功了在这样做;然而,该用户变得无效 - 当我尝试使用此用户的凭据登录到应用程序时,我收到一个错误,即凭据不正确(即使它们是)
只是检查日志和查看终端,似乎真实性令牌丢失或不正确 - 任何想法我在这里做错了什么?
我尝试尽可能接近教程,我怀疑我错过了什么,但显然可能。
答案 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,
佩里