我的应用程序有一个用户模型,并且它已经有效地使用has_secure_password
到这一点。 has_secure_password
需要一个password_digest
专栏,这就是我最近的问题。
我想创建一个字符串类型的“角色”列,将管理员与用户分开 - 但是在迁移之后,我password_digest
被损坏了,所以每当我尝试在我的应用程序中使用它时,我都会收到一个无效的哈希错误。在 mysql 中一切都很好(password_digest
值没有改变),但在 rails 控制台中,返回的值User.first.password_digest
类似于:
\#BigDecimal:59d0c60,'0.0',9(18)
此外,除非我从字符串更改角色的类型,否则它会类似地搞砸(尽管像password_digest
,它在 mysql 中完全没问题)。password_digest
就 Rails 控制台而言,回滚迁移并删除“角色”列会导致恢复正常。
这里发生了什么?
这是我的数据库架构:
这是直接馈送到 mysql 的 sql 查询的结果:
这是通过 rails 进行相同查询的结果(第一次):
这是通过 rails 进行相同查询的结果(第一次之后):