目前在维护一个应用,偶尔会出现一些用户不能登陆的情况,查看数据库的时候发现用户名为空,但是我已经利用了 rails 的验证机制,规定了用户名的长度,mysql 也设置了用户名不能为空,请问是可能是什么原因导致的?
migration: t.string :name, null: false
validation validates :name, :length => { in: 1..20 }
是包含空白字符的字符串还是什么都没有
desc users 看一下你的设置是否真的生效。
desc users
migation 生成的表结构限制的是 null,不是""和" "
一个空格在你的 validation 应该也是通过的
可能是这些原因
用户名是一个空字符串'',一个用户说他输入了特殊的字符,下次登陆的时候就登陆不上了。我想是不是因为这个特殊字符通过了 rails 的验证,但是 mysql 并不识别这个字符,所以在存储的时候存为空字符?