我正在用Desive做导轨。在默认注册过程中,Desive要求用户键入两次密码以进行验证和身份验证。如何禁用它
要禁用密码确认只需从注册表中删除password\u confirmation字段即可。这将禁用完全确认密码的需要
- 如果没有,则生成设计视图:
rails g designe:views - 删除
app\views\designe\registrations\new.html.erb
一种方法是:
<;%#禁用密码确认,以便用户不必输入两次密码%>;
<;%如果为false%>;
<;div class=“field”>;
<;%=f、 标签:密码\u确认%>&书信电报;br/>;
<;%=f、 密码字段:密码确认,自动完成:“新密码”%>;
</部门>;
<;%结束%>;
这项工作之所以有效,是因为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,因此不会触发验证