这似乎应该是直截了当的。注册新用户时,我想要空白用户名和密码的自定义错误。它适用于用户名:
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."}
最小长度消息正常工作。但如果我使用空密码提交,我会收到默认的“不能为空”的消息。
答案 0 :(得分:3)
has_secure_password
会自动为您添加一些验证:
创建时必须有密码
密码长度应小于或等于72个字符
确认密码(使用password_confirmation属性)
为防止这种情况,请声明:
has_secure_password validations: false
然后你可以添加自己的。
答案 1 :(得分:2)
has_secure_password验证:false起初工作,但是当我创建编辑用户个人资料页面时遇到了问题。它假定用户可能没有输入密码。所以它取决于has_secure_password中的验证,上面的答案禁用了。
更好的方法是编辑config / local / en.yml:
en:
activerecord:
attributes:
user:
password: "Password"
errors:
models:
user:
attributes:
password:
blank: "Please enter a password."