3

カスタムバリデーター内から標準の Rails バリデーターを呼び出す方法はありますか?

OAuth/メール サインアップ/サインインの組み合わせがあり、各認証方法で特定のバリデータを呼び出せるようにしたいと考えています。たとえばvalidates_uniqueness_of :email、ユーザーが電子メールでサインアップした場合に呼び出してから、単一のバリデーターを呼び出すことができるようにしたいと考えていますvalidates_with UserValidator

これを行う方法がない場合は、状態の追跡と一連の:if検証を使用します。

4

3 に答える 3

1

カスタムバリデーターから他のバリデーターを呼び出す方法はないと思います。これは、危険な循環依存を引き起こす可能性もあります。

条件付き検証を使用する必要がありますが、このようにスコープを設定できることに注意してください (Rails ガイドから取得)。

with_options if: :is_admin? do |admin|
  admin.validates :password, length: { minimum: 10 }
  admin.validates :email, presence: true
end
于 2013-12-29T15:30:05.377 に答える