我正在尝试“调整”我使用Ruby on Rails验证器看到的行为。在我们的申请中,我们要求在更改密码前确认密码。
使用Ruby验证器非常容易,只需在模型上添加验证
class ChangePassword < BaseModel
validates_confirmation_of :password
自动激活JavaScript以在客户端进行检查,但问题是,当用户输入密码并在输入确认密码之前,它会启动“新密码与确认不匹配”。
我需要更改该行为,因此如果确认密码为空,则不会在JavaScript端显示该行为,但如果用户点击“发送表单”按钮,则会继续引发该错误。
这在Rails中是否可行?
谢谢
答案 0 :(得分:1)
你可以通过条件验证技术来做到这一点。
class ChangePassword < BaseModel
validates_confirmation_of :password, :if => :password_present?
private
def password_present?
password.present?
end
end