设计:在注册期间禁用密码确认

我正在用Desive做导轨。在默认注册过程中,Desive要求用户键入两次密码以进行验证和身份验证。如何禁用它

要禁用密码确认只需从注册表中删除password\u confirmation字段即可。这将禁用完全确认密码的需要

  1. 如果没有,则生成设计视图:rails g designe:views
  2. 删除app\views\designe\registrations\new.html.erb

一种方法是:

<%#禁用密码确认,以便用户不必输入两次密码%>
<%如果为false%>
<div class=“field”>
<%=f、 标签:密码\u确认%&gt&书信电报;br/>
<%=f、 密码字段:密码确认,自动完成:“新密码”%>
&lt/部门>
<%结束%>

这项工作之所以有效,是因为designe源代码中的lib/designe/models/validable.rb

模块设计
模块模型
模块可验证
def自带(基本)
基本类\u评估do
#……剪断。。。
验证以下各项的确认:密码,:if=>:需要密码吗?
终止
终止
#…剪断。。。
是否需要def密码?
!坚持?| |!password.nil?| |!密码_confirmation.nil?
终止
终止
终止
终止

请注意,只有在password\u required?返回true时才会触发验证,如果password\u confirmation字段为nil,则password\u required?将返回false

因为表单中存在password\u confirmation字段,因此它将始终作为空字符串包含在参数哈希中,如果保留为空,则会触发验证。但是,如果从表单中删除输入,参数中的密码确认将为nil,因此不会触发验证

发表评论