【发布时间】:2013-03-11 19:08:25
【问题描述】:
我有一个用户注册页面。我希望用户密码为 4 到 16 个符号。我需要检查它们是否至少有一个大写字母和 1 个数字。比我制作这个密码的 md5 哈希值并将其放入数据库。
如何验证它?
如果密码长度为 32 个符号,则模型测试中的验证:
validates :password, :length => { :minimum => 32 ,
:message => 'Not an md5 password provided.' }
但是,在对密码进行哈希处理并为此验证设置适当的错误之前,如何验证密码是否符合我的要求?
我想查看 user.errors[:password] 包含“必须至少有一位数字”之类的内容。和“必须至少有一个大写字母。”
【问题讨论】:
-
理想情况下,您应该向模型提供密码,它会为您散列它并减轻调用者必须散列自己的密码(或忘记密码的后果)。但我不确定你如何使用 ActiveRecord 来做到这一点。