emailやhashed_passwordなどの通常の属性を持つUserモデルがあります。Eメールアドレスの存在をチェックする検証を作成したいのですが、
1)このオブジェクトのデータベースに保存されているものがありません(つまり、これは新規ユーザーのサインアップです)
2)ユーザーが自分のメールアドレスを更新しようとしています。
私の現在の検証
validates_presence_of :email
validates_presence_of :email_confirmation
validates_confirmation_of :email
明らかに私が属性を更新するのを妨げています。使ってみようと思いました
validates_presence_of:email、:if:email_validation_required?
def email_validation_required?
self.email.blank?
end
ただし、シナリオ2では、ユーザーがデータベースにパスワードの電子メールアドレスを持っているため、trueが返されるため、これは役に立ちません。
上記の2つのシナリオだけに制限する方法を理解できません。
誰か助けてもらえますか?