密码存在验证的自定义错误消息

时间:2015-08-01 13:51:49

标签: ruby-on-rails

这似乎应该是直截了当的。注册新用户时,我想要空白用户名和密码的自定义错误。它适用于用户名:

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."}

最小长度消息正常工作。但如果我使用空密码提交,我会收到默认的“不能为空”的消息。

2 个答案:

答案 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."