我对 Rails 项目中的用户进行了以下验证
validates :password, presence: true, format: { with: /^[a-zA-Z0-9]+$/, multiline: true }, on: :create
Run Code Online (Sandbox Code Playgroud)
如何验证 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
Run Code Online (Sandbox Code Playgroud)
这将在两种情况下触发密码验证:
假设您正在使用has_secure_password,它给出password和password_confirmation作为属性,并且password_digest作为字段。Rails 公开了_changed?方法来检查给定属性是否已更改(是否已更改)(且尚未持久化)。
u = User.last
u.email = 'foobar@foobar.com'
u.email_changed? #=> true
u.save #=> true
u.email_changed? #=> false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |