我在rails项目中对用户进行了以下验证
validates :password, presence: true, format: { with: /^[a-zA-Z0-9]+$/, multiline: true }, on: :create
如何在devise_token_auth密码更新
中验证密码答案 0 :(得分:3)
你去了:
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 = 'foobar@foobar.com'
u.email_changed? #=> true
u.save #=> true
u.email_changed? #=> false