我已經在軌用戶下面的驗證項目添加密碼驗證,同時更新密碼
validates :password, presence: true, format: { with: /^[a-zA-Z0-9]+$/, multiline: true }, on: :create
我如何可以驗證密碼devise_token_auth密碼更新
我已經在軌用戶下面的驗證項目添加密碼驗證,同時更新密碼
validates :password, presence: true, format: { with: /^[a-zA-Z0-9]+$/, multiline: true }, on: :create
我如何可以驗證密碼devise_token_auth密碼更新
你去那裏:
validates :password, presence: true, format: { with: /^[a-zA-Z0-9]+$/, multiline: true }, if: :password_validation
def password_validation
new_record? || password_digest_changed?
end
這將在兩種情況下觸發驗證密碼:
has_secure_password
假設,它給password
和password_confirmation
爲屬性,而password_digest
的領域。 Rails公開_changed?
方法來檢查給定屬性是否已更改(is dirty)(並且尚未保留)。
u = User.last
u.email = '[email protected]'
u.email_changed? #=> true
u.save #=> true
u.email_changed? #=> false
password_digest_changed?是我們需要在用戶模型 – CR7
中添加的一種方法。假設您正在使用has_secure_password,則不需要添加任何其他字符。在上面的答案中增加更多細節。 – kiddorails
刪除'return if!persisted?',因爲在新記錄的情況下您也需要它。 – kiddorails
這將驗證密碼,如果驗證失敗,將不允許保存,這看起來很好。那麼問題到底是什麼? –
這將僅在創建用戶時進行驗證。對? – CR7
@PamioSolanky我需要在更新密碼時驗證它以及 – CR7