has_secure_password即使密码和passowrd_confirmation不匹配也会创建用户

时间:2015-06-30 19:46:55

标签: ruby-on-rails ruby-on-rails-4 activerecord rubygems

我在用户模型中使用has_secure_password。注册时我会给出密码和密码确认字段。

我手动添加了验证,以检查我的用户模型中的密码和确认是否匹配。

has_secure_password
validates :password, presence:true, length: {minimum:6}
validate :pass_valid
def pass_valid
    errors.add(:base,"password and confirmation do not match") if password!=password_confirmation
end 

我的表单看起来像这样

= f.label :'Password'
= f.password_field :password
= f.label :'Password Confirmation'
= f.password_field :password_confirmation

即使输入与密码不同的密码确认,表单也会出错。我认为has_secure_password验证密码和确认是否匹配,我删除了pass_valid方法。现在即使密码和确认不匹配,也会创建用户。

有人可以帮帮我吗?

P.S:我在我的gemfile中使用了protected-attributes。因此,在用户模型中为attr_accessible添加了密码和password_confirmation。

1 个答案:

答案 0 :(得分:0)

尝试使用validates_with :yourValidator,在这种情况下为pass_valid。