Rails 6.0 在为一种类型的用户创建和更新时验证密码是否存在,但只为另一种用户更新
Rails 6.0 validate password presence on create and update for one type of user but only update for another
我有一个具有以下属性的 User
模型:
id: integer
username: string
email: string
password_hash: string
password_salt: string
account_type: string
...
我的目标是在创建和更新时验证用户的密码。
当 account_type: 'a'
的用户被创建或更新时,我想 运行 validates :password, :password_confirmation, presence: true
.
当 account_type: 'b'
的用户更新时,我想验证 password
和 password_confirmation
是否存在,但 NOT 当用户被创建。
如果更多代码或更清晰的解释会有所帮助,请告诉我。提前致谢。
validates :password, :password_confirmation, presence: true, unless: -> { |user| user.account_type == 'b' && user.new_record? }
我有一个具有以下属性的 User
模型:
id: integer
username: string
email: string
password_hash: string
password_salt: string
account_type: string
...
我的目标是在创建和更新时验证用户的密码。
当 account_type: 'a'
的用户被创建或更新时,我想 运行 validates :password, :password_confirmation, presence: true
.
当 account_type: 'b'
的用户更新时,我想验证 password
和 password_confirmation
是否存在,但 NOT 当用户被创建。
如果更多代码或更清晰的解释会有所帮助,请告诉我。提前致谢。
validates :password, :password_confirmation, presence: true, unless: -> { |user| user.account_type == 'b' && user.new_record? }