在用户在Rails中输入输入之前,请勿显示“新密码与确认不匹配”

时间:2012-03-29 10:26:46

标签: ruby-on-rails-3 validation password-confirmation

我正在尝试“调整”我使用Ruby on Rails验证器看到的行为。在我们的申请中,我们要求在更改密码前确认密码。

使用Ruby验证器非常容易,只需在模型上添加验证

 class ChangePassword < BaseModel
    validates_confirmation_of :password

自动激活JavaScript以在客户端进行检查,但问题是,当用户输入密码并在输入确认密码之前,它会启动“新密码与确认不匹配”。

我需要更改该行为,因此如果确认密码为空,则不会在JavaScript端显示该行为,但如果用户点击“发送表单”按钮,则会继续引发该错误。

这在Rails中是否可行?

谢谢

1 个答案:

答案 0 :(得分:1)

你可以通过条件验证技术来做到这一点。

class ChangePassword < BaseModel
  validates_confirmation_of :password, :if => :password_present?

   private
   def password_present?
     password.present?
   end
end