我在尝试将旧应用程序迁移到Rails 3,并将身份验证更改为使用Devise。我创建了模型和迁移并导入了所有的用户数据。将现有用户模型迁移到设计
我不打算迁移密码,因为现有的方案不是我们希望使用的方案之一,但我希望能够向用户提供简单的体验。
理想情况下,我想捕获登录错误,然后使用旧字段检查密码,然后使用它更新设计密码(如果匹配)。
我可以看到,Warden给了我一个可以捕获错误的回调函数,所以我希望我可以捕获登录错误。
但是因为所有密码(在设计中)都是空白的,所以我得到了有关散列的错误,因为encrypted_password字段为空。
有没有一种方法可以用随机密码更新所有用户帐户?
我在Devise :: Models :: DatabaseAuthenticatable中看到有一个方法'password =',但如果我打电话给它,例如在轨控制台应用程序:
User.find(1).password=('new')
=> "new"
我只是得到相同的纯文本字符串返回(“新”),并保存用户记录后这个不填充encrypted_password领域。
我周围搜索,但似乎无法找到它。任何建议非常感谢!
我只是想出了上面的工作很好 - 我在另一个没有完全运行设计迁移的开发盒上尝试它。卫生署! – Iain 2011-04-30 08:09:51