"密码不能为空"显示两次

Dre*_*Dre 1 ruby-on-rails ruby-on-rails-4

我正在尝试验证用户的密码createupdate(自定义身份验证,没有宝石).密码应始终是必需的create,但只有在update输入密码时才需要密码.

车型/ user.rb

has_secure_password
validates :password, presence: {if: :requires_password?}, length: {minimum: 6}
validates :password_confirmation, presence: {if: :requires_password?}

private
  def requires_password?
    new_record? || !password.nil?
  end
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作,但在创建新用户时,会显示错误消息"密码不能为空"两次.

是否有一个简单的解决方案,或者我是否以错误的方式接近密码验证?

Bal*_*ick 9

请参阅文档has_secure_password,已包括在线验证:

将自动添加密码存在,密码确认(使用"password_confirmation"属性)的验证.如果需要,您可以手动添加更多验证.