我必须检查表格中是否存在confirm_password输入框。
如果存在,
我需要这样做:
validates :password,:confirmation=>true
否则
将确认设置为false。
问题的详细说明:
我正在使用rails client_side_validation gem,它将模型验证转换为javascript表单验证。
这有点问题,因为登录和注册属于同一个表,它们都有一个模型。现在,当我在模型中添加它以进行验证时:
validates :password,:confirmation=>true
它不会让我登录,因为验证将变为false,因为登录时没有confirm_password输入框。它只能在注册时使用。
答案 0 :(得分: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
答案 1 :(得分:1)
假设模型用户将@user.is_signup = true
添加到users_controller中的注册操作。在您的用户模型中添加attribute_accessor :is_signup
和validates :confirm_password, :confirmation => true, :if => :is_signup
。