密码存在validation的自定义错误消息
看起来这应该是直截了当的。 注册新用户时,我想要空白用户名和密码的自定义错误。 它适用于用户名:
validates :name, presence: { message: "Please enter a name." }, length: { maximum: 50, message: "Please enter a name shorter than 50 characters"}
当该字段为空时,它会显示“请输入名称”。 错误。
我对密码也是一样的:
has_secure_password validates :password, presence: { message: "Please enter a password." }, length: { minimum: 8, message: "Please choose a password with at least 8 \ characters."}
最小长度消息正常工作。 但是,如果我使用空密码提交,我会收到默认的“不能为空”消息。
has_secure_password
自动为您添加一些validation:
密码必须在创建时出现
密码长度应小于或等于72个字符
确认密码(使用password_confirmation属性)
为了防止这种情况,声明:
has_secure_password validations: false
然后你可以添加自己的。
has_secure_passwordvalidation:false起初工作,但是当我创建编辑用户个人资料页面时遇到了问题。 它假定用户可能没有输入密码。 所以它取决于has_secure_password中的validation,上面的答案禁用了。
更好的方法是编辑config / local / en.yml:
en: activerecord: attributes: user: password: "Password" errors: models: user: attributes: password: blank: "Please enter a password."