我正在尝试将遗留应用程序迁移到Rails 3并更改身份验证以使用设计。我已经创建了模型和迁移,并导入了所有的用户数据。
我不打算迁移密码,因为现有的方案不是我们想要使用的,但我希望能够为用户提供简单的体验。
理想情况下,我想抓住一个登录错误,然后检查密码与遗留字段,然后更新它的设计密码,如果它匹配。
我可以看到Warden给了我一个可以捕获错误的回调,所以我希望我可以捕获登录错误。
然而,因为所有的密码(在设计中)都是空白的,我得到与哈希有关的错误,因为encrypted_password字段是空的。
是否有一种方法可以用随机密码更新所有用户帐户?
我已经看到在设计::模型::DatabaseAuthenticatable,有一个方法'password=',但如果我调用它,例如在rails控制台的应用程序:
User.find(1).password=('new')
=> "new"
我只是得到相同的纯文本字符串返回('new')并保存用户记录post,这不会填充encrypted_password字段。
我已经到处找过了,但似乎找不到它。任何建议,非常感谢!
好了,以防有人像我过去24小时一样头昏眼花,下面是设置密码的方法:
user = User.find(id)
user.password = 'new-password'
user.save