我有一個非常基本的管理模式:validates_confirmation_of:密碼不被觸發
class Admin < ActiveRecord::Base
has_secure_password
validates_uniqueness_of :email
attr_accessible :email, :password, :password_confirmation
end
According to the manualhas_secure_password
還增加了一個validates_confirmation_of :password
。如果我是正確的validates_confirmation_of
應該總是錯誤,如果:password
和:password_confirmation
不匹配 - 即使:password_confirmation
是nil
。
我與RSpec的測試和測試失敗,並告訴我,admin
是有效:
admin = Admin.new
admin.email = '[email protected]'
admin.password = 'secret'
admin.should be_invalid
這一個通行證:
admin = Admin.new
admin.email = '[email protected]'
admin.password = 'secret'
admin.password_confirmation = ''
admin.should be_invalid
那麼,你到底我做錯錯誤?
在第一種情況下,將密碼設置爲「祕密」後,「admin.password_confirmation」的值是多少? – Dogbert
'admin.password_confirmation'是'nil'。 – Wukerplank