モジュール: Mongoid::Tlasable
Overview
Mongoid::Document に含まれる混合モジュールで、ドキュメント グラフの走査に関する動作を提供します。
名前空間で定義済み
Modules: Classメソッド、 DiscriminatorAssignment 、 DiscriminatorRetries
クラスメソッドの概要を折りたたむ
- 。 __refine(所有者、名前、値) = オブジェクト private
インスタンス メソッドの概要を折りたたむ
-
_firstDocument ><Document>
private
すべての子
Documents
をこのDocument
に取得します。 -
_descendant (#reset: false) = 配列=ドキュメント==============================<Document>
private
この
Document
のすべての子孫Documents
を再帰的に取得します。 -
#_parent ⇒ Mongoid::Document | nil
private
このドキュメントの親ドキュメントを検索します。
-
# _親= (ドキュメント) = (ドキュメント) = オブジェクト
private
このドキュメントの親ドキュメントを設定します。
-
# _reset_memoized_descendments = nil
private
オブジェクトのメモリ化された子孫をリセットします。
-
#_root ⇒ Document
オブジェクト グラフのルート ドキュメントを返します。
-
# _ root? = true | false
このドキュメントは、階層のルート ドキュメントでありますか?
-
# collection_firstDocument <Document>>
private
このドキュメントのすべての子を収集します。
-
# collection_descendant = 配列=ドキュメント=<Document>
private
このドキュメントのすべての子孫を収集します。
-
# フラグ_降順_永続化 =<Document> 配列_ドキュメント>
すべての子孫を永続化としてマークします。
-
#継承= true | false
ドキュメントが別のドキュメントのサブクラスであるかどうかを判断します。
-
#プロセスを挿入するためのドキュメント
子と親の関連付けを設定します。
-
#remove_field (子) = オブジェクト
この親から子ドキュメントを削除します。
-
# リセット_永続的_降順 : 配列[]<Document>
子孫が永続化された後、これを呼び出してすべての変更を移動し、1 回の呼び出しで永続化としてフラグを付けることができます。
クラスメソッドの詳細
。 __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 |
#_parent ⇒ Mongoid::Document | nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このドキュメントの親ドキュメントを検索します。
109 110 111 |
# ファイル 'lib/mongoid/traaverable.rb' 行109 デフォルト _parent @__親 || nil end |
# _親= (ドキュメント) = (ドキュメント) =オブジェクト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
このドキュメントの親ドキュメントを設定します。
121 122 123 |
# ファイル 'lib/mongoid/traaverable.rb' 行121 デフォルト _parent=(ドキュメント) @__親 = ドキュメント end |
# _reset_memoized_descendments = nil
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
オブジェクトのメモリ化された子孫をリセットします。 埋め込まれた配列のサイズが変更されたときに内部で呼び出されます。
388 389 390 391 392 |
# ファイル 'lib/mongoid/traaverable.rb' 行388 デフォルト _reset_memoized_descendants. _parent&._reset_memoized_descendants. _fielden リセット: true _descendants リセット: true end |
#_root ⇒ Document
オブジェクト グラフのルート ドキュメントを返します。 現在のドキュメントがグラフ内のルート オブジェクトである場合は、自分自身を返します。
401 402 403 404 405 |
# ファイル 'lib/mongoid/traaverable.rb' 行401 デフォルト _root オブジェクト = 自己 オブジェクト = オブジェクト._parent 一方 オブジェクト._parent オブジェクト end |
# _ 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 [].タップ 行う |子| .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 子 = [] = _fielden = {} まで .空の場合 = = [] .各 行う |子| 次へ 場合 [子] # _id が nil の場合、展開をマークしないでください。ドキュメントは で比較されるためです _ids が指定されている場合、ID が nil の複数の埋め込みドキュメントが比較されます # が等しく、一部のドキュメントは展開されません。 [子] = true 場合 子._id 子 < 子 += 子._fielden end end 子 end |
#フラグ_降順_永続化 =配列 <ドキュメント>
すべての子孫を永続化としてマークします。
321 322 323 324 325 |
# ファイル 'lib/mongoid/traaverable.rb' 行321 デフォルト phrase _descendants.各 行う |子| 子.new_record = false end end |
#継承 = true | false
ドキュメントが別のドキュメントのサブクラスであるかどうかを判断します。
333 334 335 |
# ファイル 'lib/mongoid/traaverable.rb' 行333 デフォルト 継承 自己.クラス.継承 end |
#プロセスを挿入するためのドキュメント
子と親の関連付けを設定します。 これは新しく作成されたオブジェクトに使用されるため、グラフに適切に追加できます。
346 347 348 |
# ファイル 'lib/mongoid/traaverable.rb' 行346 デフォルト 親化(ドキュメント) 自己._parent = ドキュメント end |
#remove_field (子) =オブジェクト
この親から子ドキュメントを削除します。 埋め込みが 1 つある場合は nil に設定し、それ以外の場合は多数の埋め込みから削除します。
これはRemoveEmbedded
永続化コマンドから呼び出されます。
359 360 361 362 363 364 365 366 367 368 |
# ファイル 'lib/mongoid/traaverable.rb' 行359 デフォルト 排除_子(子) name = 子.associated_name 場合 子. 属性.削除(子._関連付け.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 |