从has_secure_password
迁移到devise时,与用户对象交互时控制台会出现以下错误:
.rvm/gems/ruby-2.4.1/gems/devise-4.4.0/lib/devise/models/database_authenticatable.rb:166:in `password_digest'
我明白这是因为Devise使用了password_digest
函数,所以它与Active Record的has_secure_password
使用的password_digest
列不兼容。
一种解决方法是从数据库中删除password_digest
列,但我不想失去现有用户的密码。
我应该删除Devise创建的encrypted_password
列,然后执行迁移以将password_digest
重命名为encrypted_password
,然后更新现有用户的密码,还是有更合适的解决方案?