【问题标题】:Do not show 'New password does not match confirmation' before the user enters input in Rails在用户输入 Rails 之前不要显示“新密码与确认不匹配”
【发布时间】:2012-03-29 10:26:46
【问题描述】:

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

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

 class ChangePassword < BaseModel
    validates_confirmation_of :password

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

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

这在 Rails 中可行吗?

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 酷!有效。我刚刚编辑了你的答案,因为它有几个语法错误
    猜你喜欢
    • 2011-10-21
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多