0

我必须检查确认密码输入框是否存在于表单中。
如果存在,我需要这样做:

validates :password,:confirmation=>true

别的

将确认设置为假。

问题的详细解释:

我正在使用rails client_side_validation gem,它将模型验证转换为javascript表单验证。

这有一个小问题,因为登录和注册属于同一张表,它们都有一个模型。现在,当我在模型中添加它进行验证时:

validates :password,:confirmation=>true

它不会让我登录,因为验证将变为错误,因为登录时没有确认密码输入框。它只适用于注册。

4

2 回答 2

1

在您的注册表单中,您可以有一个在表单中传递的隐藏字段。如果该属性存在并返回,true则验证密码确认是否存在。

注册表单,表单标签内的某处:

<%= form.hidden_field :is_signup, true %>

模型:

attribute_accessor :confirm_password
attribute_accessor :is_signup

validates :confirm_password, :presence => true, :if => :validate_confirm_password?

def validate_confirm_password?
  is_signup
end
于 2012-12-17T20:33:52.323 回答
1

假设一个模型用户添加@user.is_signup = true到 users_controller 中的注册操作。在您的用户模型中添加attribute_accessor :is_signupvalidates :confirm_password, :confirmation => true, :if => :is_signup.

于 2012-12-18T18:44:34.973 回答