我有一个包含大量行的自定义User
模型。我有一个password_digest
列,我想保留。 (它来自has_secure_password
)
我也想使用Devise数据库authenticatable,但是由于我对Devise的了解有限,我必须使用encrypted_password列。
有没有办法让Devise使用我当前的password_digest
进行身份验证,这样我就不会丢失所有用户密码?
如果我添加encrypted_password
列,它将是空白的,我绝对不希望它保持这样。
我可能会以错误的方式思考这个问题。什么是解决这个问题的正确方法?
答案 0 :(得分:3)
只需编写一个迁移来重命名列名称,它就不会丢失您的数据。
rails g migration ChangeColumnName
这将生成一个迁移文件
class ChangeColumnName < ActiveRecord::Migration
def change
rename_column :users, :password_digest, :encrypted_password
end
end