1

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

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

 class ChangePassword < BaseModel
    validates_confirmation_of :password

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

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

这在 Rails 中可行吗?

谢谢

4

1 回答 1

1

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

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

   private
   def password_present?
     password.present?
   end
end
于 2012-03-29T13:08:52.857 回答