モジュール: Mongoid::関連付け::アクセス

次による拡張機能。
ActiveSupport::Concern
次のドキュメントに含まれます。
Mongoid::関連付け
定義:
lib/mongoid/asaction/accessors.rb

Overview

このモジュールには、 getter と setter を介した関連付けへのアクセスと、新しい関連付けを作成するためのビルダへの委任方法に関連するすべての動作が含まれています。

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

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

# __ build__ (name, object, concern, associated_fields = nil) = nil) = nil からプロキシ

関連するドキュメントを構築し、ドキュメントが nil でない限り関連付けを作成し、このドキュメントに関連付けを設定します。

例:

関連付けを構築します。

person.__build__(:addresses, { :_id => 1 }, association)

パラメーター:

  • name ( string | Symbol )

    関連付けの名前。

  • オブジェクト ハッシュ | BSON ::ObjectId

    使用する ID または属性。

  • 関連付け Mongoid::関連付け::Relatable

    関連付けメタデータ。

  • scheduled_fields ハッシュ (デフォルトはnil

    # のみ を介して検索されたフィールド。 [選択した_フィールド] が指定されている場合、それにリストされていないフィールドは構築されたドキュメントでアクセスできなくなります。

次の値を返します。



27
28
29
30
# ファイル 'lib/mongoid/asaction/accessors.rb' は、 27行

デフォルト __Build__(name, オブジェクト, 関連付け, scheduled_fields = nil)
  関係 = create_relation(オブジェクト, 関連付け, scheduled_fields)
  set_relation(name, 関係)
end

# create_relation (オブジェクト、関連付け、選択した_フィールド = nil)= nil) ================================================

オブジェクトと関連付けメタデータから関連付けを作成します。

例:

関連付けを作成します。

person.create_relation(document, association)

パラメーター:

  • オブジェクト (Document | Array<Document>)

    関連付けターゲット。

  • 関連付け Mongoid::関連付け::Relatable

    関連付けメタデータ。

  • scheduled_fields ハッシュ (デフォルトはnil

    # のみ を介して検索されたフィールド。 選択した_フィールドが指定されている場合、それにリストされていないフィールドは、作成された関連付けドキュメントではアクセスできなくなります。

次の値を返します。



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# ファイル 'lib/mongoid/asaction/accessors.rb' は、 44行

デフォルト create_relation(オブジェクト, 関連付け, scheduled_fields = nil)
  タイプ = @attributes[関連付け.inverse_type]
  ターゲット = 場合 t = 関連付け.構築(自己, オブジェクト, タイプ, scheduled_fields)
    関連付け.create_relation(自己, t)
  else
    nil
  end

  埋め込み関連付けではこれを実行する必要があります。 保留中のコールバック
  # はドキュメントをマテリアライズド化するときにのみ追加されます。これは次のみ発生します:
  埋め込み関連付けの場合は #。 にはデータベースへの呼び出しはありません。
  参照された関連付けの#構築。
  場合 関連付け.埋め込み
    配列(ターゲット). 行う |doc|
      doc.試す(:run_pending_colbacks)
    end
  end

  ターゲット
end

# restore_relation_criteria (name) =オブジェクト

関連付けプロキシ内の基準をリセットします。 基礎となる ID 配列を同期するために多対多の関連付けで使用されます。

例:

関連付け基準をリセットします。

person.reset_relation_criteria(:preferences)

パラメーター:

  • name シンボル

    関連付けの名前。



72
73
74
75
76
# ファイル 'lib/mongoid/asaction/accessors.rb' は、 72行

デフォルト delete_relation_criteria(name)
  場合 instance_variable_defined?(" @_ #{ name } ")
    送信(name).delete_unloaded
  end
end

# set_relation (名前, 関係)=プロキシ

指定された名前を持つクラスの変数インスタンスに、指定された関連付けを設定します。 コードのクリーンアップのためだけにヘルパーとして使用されます。

例:

ドキュメントにプロキシを設定します。

person.set(:addresses, addresses)

パラメーター:

  • name ( string | Symbol )

    関連付けの名前。

  • 関係 プロキシ

    設定する関連付け。

次の値を返します。



88
89
90
# ファイル 'lib/mongoid/asaction/accessors.rb' は、 88行

デフォルト set_relation(name, 関係)
  instance_variable_set(" @_ #{ name } ", 関係)
end