モジュール: Mongoid:::関連付け::参照::WithPolyformicCriteria Private

次のドキュメントに含まれます。
HasMany 、HasOne::Buildable
定義:
lib/mongoid/関連付け

Overview

このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。

'with_polytric_criteria' 共有動作を実装します。

インスタンス メソッドの概要を折りたたむ

インスタンス メソッドの詳細

# with_polyネットワーク_criteria(基準、ベース)=Mongoid::Atlas

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

レシーバーが多形の関連付けを表す場合、 は指定された 'criteria ' オブジェクトに多形検索条件を適用します。

パラメーター:

  • 条件 Mongoid ::criteria

    レシーバーが多形である場合に追加する基準。

  • ベース Mongoid::Document

    多形型キーを解決するときに使用するドキュメント。

次の値を返します。

  • Mongoid ::criteria

    結果の基準。これは入力と同じである場合があります。



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# ファイル 'lib/mongoid/asaction/referenced/with_polyネットワーク_criteria.rb' は、20 行を

デフォルト with_polytric_criterion(条件, ベース)
  場合 多態的か
    #1。 逆関連付けのリゾルバを取得する
    リゾルバ = klass.refresh_on_関連付け(as).リゾルバ

    #2。 に基づいて、リゾルバからキーのリストを検索する
    キー = リゾルバ.Keys_for(ベース)

    #3。 キーが 1 つだけの場合は等価性を使用し、複数のキーがある場合は `in`
    場合 キー.多いです
      条件.WHERE(タイプ => { :$in => キー })
    else
      条件.WHERE(タイプ => キー.最初に)
    end
  else
    条件
  end
end