Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 不显示';新密码与确认密码不匹配';在用户输入Rails之前_Ruby On Rails 3_Validation_Password Confirmation - Fatal编程技术网

Ruby on rails 3 不显示';新密码与确认密码不匹配';在用户输入Rails之前

Ruby on rails 3 不显示';新密码与确认密码不匹配';在用户输入Rails之前,ruby-on-rails-3,validation,password-confirmation,Ruby On Rails 3,Validation,Password Confirmation,我正在尝试“调整”一个使用RubyonRails验证程序看到的行为。在我们的应用程序中,我们要求在更改密码之前确认密码 使用Ruby验证器非常容易,只需在模型上添加验证 class ChangePassword < BaseModel validates_confirmation_of :password class ChangePassword

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

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

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

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

这在Rails中可能吗


谢谢

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

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

   private
   def password_present?
     password.present?
   end
end
class ChangePassword:密码是否存在?
私有的
def密码是否存在?
密码是多少?
结束
结束

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

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

   private
   def password_present?
     password.present?
   end
end
class ChangePassword:密码是否存在?
私有的
def密码是否存在?
密码是多少?
结束
结束

酷!成功了。我刚刚编辑了你的答案,因为它有两个语法错误SCOOL!成功了。我刚刚编辑了你的答案,因为它有几个语法错误