在用户在 Rails 中输入输入之前不显示'New password does not match confirmation'



我正在尝试使用RubyonRails验证器"调整"我看到的行为。在我们的应用程序中,我们要求在更改密码之前确认密码。

Ruby验证器非常简单,只需在模型上添加验证即可

 class ChangePassword < BaseModel
    validates_confirmation_of :password

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

我需要改变这种行为,这样,如果确认密码为空,它就不会在JavaScript端显示这种情况,但如果用户点击"发送表单"按钮,就会不断出现这种错误。

这在Rails中可能吗?

感谢

您可以通过条件验证技术来实现这一点。

class ChangePassword < BaseModel
  validates_confirmation_of :password, :if => :password_present?
   private
   def password_present?
     password.present?
   end
end

最新更新