【发布时间】:2023-04-01 06:55:01
【问题描述】:
我在我的用户模型中使用 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 中使用了受保护的属性。所以在用户模型的 attr_accessible 中添加了密码和密码确认。
【问题讨论】:
-
您在哪里声明验证基于两个字段相等?
-
对不起!我复制粘贴的错误。已编辑
-
我认为你应该使用 validates_with,而不是 validates 。
标签: ruby-on-rails ruby-on-rails-4 activerecord rubygems