ruby-on-rails – validates_confirmation_of:密码不会被触发
发布时间:2020-12-17 03:13:25 所属栏目:百科 来源:网络整理
导读:我有一个非常基本的Admin模型: class Admin ActiveRecord::Base has_secure_password validates_uniqueness_of :email attr_accessible :email,:password,:password_confirmationend According to the manual has_secure_password还添加了validates_confirm
我有一个非常基本的Admin模型:
class Admin < ActiveRecord::Base has_secure_password validates_uniqueness_of :email attr_accessible :email,:password,:password_confirmation end According to the manual has_secure_password还添加了validates_confirmation_of:密码.如果我是正确的,如果:password和:password_confirmation不匹配,则validates_confirmation_of应始终出错 – 即使:password_confirmation为nil. 我正在使用RSpec进行测试,此测试失败并告诉我管理员是有效的: admin = Admin.new admin.email = 'test@example.info' admin.password = 'secret' admin.should be_invalid 这个通过: admin = Admin.new admin.email = 'test@example.info' admin.password = 'secret' admin.password_confirmation = '' admin.should be_invalid 那么,我做错了什么? 解决方法
这是has_secure_password的代码:
# File activemodel/lib/active_model/secure_password.rb,line 32 def has_secure_password attr_reader :password validates_confirmation_of :password validates_presence_of :password_digest include InstanceMethodsOnActivation if respond_to?(:attributes_protected_by_default) def self.attributes_protected_by_default super + ['password_digest'] end end end 如您所见,它永远不会确保发送密码确认.但是,您可以自己添加,只要页面上有表单字段,如果未填充,则会发送一个空字符串. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |