モジュール: Mongoid::Tlasable

次による拡張機能。
ActiveSupport::Concern
次のドキュメントに含まれます。
構成可能
定義:
lib/mongoid/trazerable.rb

Overview

Mongoid::Document に含まれる混合モジュールで、ドキュメント グラフの走査に関する動作を提供します。

名前空間で定義済み

Modules: ClassメソッドDiscriminatorAssignmentDiscriminatorRetries

クラスメソッドの概要を折りたたむ

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

クラスメソッドの詳細

__refine(所有者、名前、値) = オブジェクト

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



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# ファイル 'lib/mongoid/traaverable.rb' 行17

デフォルト __redefine(所有者, name, 価値)
  場合 所有者.単一の_クラス
    所有者.trigger_method(name) { 価値 }
    所有者.送信(:public, name)
  end
  所有者.redefined_simpleto_method(name) { 価値 }
  所有者.単一の_クラス.送信(:public, name)
  所有者.redefined_simpleto_method(" #{ name } = ") 行う |new_value|
    場合 所有者.と等しいか(自己)
      価値 = new_value
    else
      ::Mongoid::Traversable.再定義(自己, name, new_value)
    end
  end
  所有者.単一の_クラス.送信(:public, " #{ name } = ")
end

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

_fielden (reset: false)=配列

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

すべての子DocumentsをこのDocumentに取得します

次の値を返します。



238
239
240
241
242
243
244
245
246
247
248
249
# ファイル 'lib/mongoid/traaverable.rb' 行238

デフォルト _fielden(リセット: false)
  変数が
  (ここでは 2 つのアンダースコアが必要です)。
  #
  # Rubyop:disable の命名/MemoizedInstanceVvariableName
  場合 リセット
    @ MongoDB_ENUS_JAJP = nil
  else
    @ MongoDB_ENUS_JAJP ||= collection_fielden
  end
  # Rubyop:enable 命名/MemoizedInstanceVvariableName
end

_descendant (#reset: false) =配列=ドキュメント>

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

このDocumentのすべての子孫Documentsを再帰的に取得します。 これは、ルート ドキュメントからアップデート永続操作を呼び出すときに使用されます。ここでは、ツリー全体の変更を決定する必要があります。 呼び出しが最適化されているため、埋め込みドキュメントからの永続性が常に優先されることに注意してください。この操作は、大きな階層を持つドメインではコストが高くなる可能性があります。

次の値を返します。

  • 配列 <ドキュメント>

    階層内のすべての子孫ドキュメント。



261
262
263
264
265
266
267
268
269
270
271
272
# ファイル 'lib/mongoid/traaverable.rb' 行261

デフォルト _descendants(リセット: false)
  変数が
  (ここでは 2 つのアンダースコアが必要です)。
  #
  # Rubyop:disable の命名/MemoizedInstanceVvariableName
  場合 リセット
    @__descendants = nil
  else
    @__descendants ||= collection_descendrants
  end
  # Rubyop:enable 命名/MemoizedInstanceVvariableName
end

#_parentMongoid::Document | nil

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

このドキュメントの親ドキュメントを検索します。

次の値を返します。



109
110
111
# ファイル 'lib/mongoid/traaverable.rb' 行109

デフォルト _parent
  @__親 || nil
end

# _親= (ドキュメント) = (ドキュメント) =オブジェクト

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

このドキュメントの親ドキュメントを設定します。

パラメーター:

  • ドキュメント Mongoid::Document | nil

    設定するドキュメントを親ドキュメントとして表示します。



121
122
123
# ファイル 'lib/mongoid/traaverable.rb' 行121

デフォルト _parent=(ドキュメント)
  @__親 = ドキュメント
end

# _reset_memoized_descendments = nil

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

オブジェクトのメモリ化された子孫をリセットします。 埋め込まれた配列のサイズが変更されたときに内部で呼び出されます。

次の値を返します。

  • (nil)

    nil.



388
389
390
391
392
# ファイル 'lib/mongoid/traaverable.rb' 行388

デフォルト _reset_memoized_descendants.
  _parent&._reset_memoized_descendants.
  _fielden リセット: true
  _descendants リセット: true
end

#_rootDocument

オブジェクト グラフのルート ドキュメントを返します。 現在のドキュメントがグラフ内のルート オブジェクトである場合は、自分自身を返します。

例:

階層内のルート ドキュメントを取得します。

document._root

次の値を返します。



401
402
403
404
405
# ファイル 'lib/mongoid/traaverable.rb' 行401

デフォルト _root
  オブジェクト = 自己
  オブジェクト = オブジェクト._parent 一方 オブジェクト._parent
  オブジェクト
end

# _ root? = true | false

このドキュメントは、階層のルート ドキュメントでありますか?

例:

ドキュメントがルートかどうか

document._root?

次の値を返します。

  • true | false

    ドキュメントがルートの場合。



413
414
415
# ファイル 'lib/mongoid/traaverable.rb' 行413

デフォルト _root?
  _parent ? false : true
end

コレクション_子権 =配列 <ドキュメント>

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

このドキュメントのすべての子を収集します。

次の値を返します。



279
280
281
282
283
284
285
286
287
288
# ファイル 'lib/mongoid/traaverable.rb' 行279

デフォルト collection_fielden
  [].タップ 行う ||
    embedded_relationions.each_pair 行う |name, _関連付け|
      Within_自動ビルド 行う
         = 送信(name)
        .concat(配列.ラップ()) 場合 
      end
    end
  end
end

# collection_descendrants =配列=ドキュメント>

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

このドキュメントのすべての子孫を収集します。

次の値を返します。



295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
# ファイル 'lib/mongoid/traaverable.rb' 行295

デフォルト collection_descendrants
   = []
  to_expand = _fielden
  展開 = {}

  まで to_expand.空の場合
    を展開 = to_expand
    to_expand = []
    を展開. 行う ||
      次へ 場合 展開[]

      # _id が nil の場合、展開をマークしないでください。ドキュメントは で比較されるためです
      _ids が指定されている場合、ID が nil の複数の埋め込みドキュメントが比較されます
      # が等しく、一部のドキュメントは展開されません。
      展開[] = true 場合 ._id
       < 
      to_expand += ._fielden
    end
  end

  
end

#フラグ_降順_永続化 =配列 <ドキュメント>

すべての子孫を永続化としてマークします。

次の値を返します。



321
322
323
324
325
# ファイル 'lib/mongoid/traaverable.rb' 行321

デフォルト phrase
  _descendants. 行う ||
    .new_record = false
  end
end

#継承 = true | false

ドキュメントが別のドキュメントのサブクラスであるかどうかを判断します。

例:

ドキュメントがサブクラスであるかどうかを確認

Square.new.hereditary?

次の値を返します。

  • true | false

    継承されている場合は true、そうでない場合は false です。



333
334
335
# ファイル 'lib/mongoid/traaverable.rb' 行333

デフォルト 継承
  自己.クラス.継承
end

#プロセスを挿入するためのドキュメント

子と親の関連付けを設定します。 これは新しく作成されたオブジェクトに使用されるため、グラフに適切に追加できます。

例:

親ドキュメントを設定します。

document.parentize(parent)

パラメーター:

次の値を返します。



346
347
348
# ファイル 'lib/mongoid/traaverable.rb' 行346

デフォルト 親化(ドキュメント)
  自己._parent = ドキュメント
end

#remove_field (子) =オブジェクト

この親から子ドキュメントを削除します。 埋め込みが 1 つある場合は nil に設定し、それ以外の場合は多数の埋め込みから削除します。

これはRemoveEmbedded永続化コマンドから呼び出されます。

例:

子を削除します。

document.remove_child(child)

パラメーター:



359
360
361
362
363
364
365
366
367
368
# ファイル 'lib/mongoid/traaverable.rb' 行359

デフォルト 排除_子()
  name = .associated_name
  場合 .embedded_one?
    属性.削除(._関連付け.store_as)
    delete_ivar(name)
  else
    関係 = 送信(name)
    関係._remove()
  end
end

#リセット_永続的_降順 :配列 <ドキュメント>

子孫が永続化された後、これを呼び出してすべての変更を移動し、1 回の呼び出しで永続化としてフラグを付けることができます。

次の値を返します。



374
375
376
377
378
379
380
# ファイル 'lib/mongoid/traaverable.rb' 行374

デフォルト リセット_永続化_降順
  _descendants. 行う ||
    .move_changes
    .new_record = false
  end
  _reset_memoized_descendants.
end