モジュール: Mongoid::関連付け::依存関係

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

Overview

このモジュールでは、関連付けの累積削除と null 化を設定するための動作と、適切な戦略に委任する方法を定義します。

定数の概要の削減

STRATEGIES =

有効な依存戦略。

[
    :delete_all,
    :破棄,
    :nullify,
    :restrict_with_例外,
    :restrict_with_error
]

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

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

クラスメソッドの詳細

refine_dependency. (関連付け) =クラス

削除時に関連するドキュメントをどのように処理するかについては、 ドキュメントのカスケード情報を追加してみてください。

例:

カバレッジ情報を設定する

Mongoid::Association::Depending.define_dependency!(association)

パラメーター:

  • 関連付け 関連付け

    関連付けメタデータ。

次の値を返します。

  • クラス

    ドキュメントの クラス。



50
51
52
53
54
55
56
57
58
59
60
61
62
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/deploy.rb', 行50

デフォルト 自己.refine_dependency.(関連付け)
  validate!(関連付け)
  関連付け.逆_クラス.タップ 行う |klass|
    場合 klass.deployments_wner != klass
      klass.依存関係 = []
      klass.deployments_wner = klass
    end

    場合 関連付け.依存関係 & & !klass.依存関係.include?(関連付け)
      klass.依存関係.プッシュ(関連付け)
    end
  end
end

検証します。 (関連付け) =オブジェクト



64
65
66
67
68
69
70
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/deploy.rb', 行64

デフォルト 自己.validate!(関連付け)
  ただし、 STRATEGIES.include?(関連付け.依存関係)
    発生 Errors::InvalidDependStratey.新着情報(関連付け,
                                               関連付け.依存関係,
                                               STRATEGIES)
  end
end

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

# apply_delete_dependencies =オブジェクト

すべての段階的な削除、破棄、または null 化を実行します。 操作を実行するための適切な戦略に委任します。

例:

カスケードを実行します。

document.apply_destroy_dependencies!


77
78
79
80
81
82
83
ファイル 'Build/mongoid- 8.1 /lib/mongoid/asaction/deploy.rb', 行77

デフォルト apply_detry_dependencies
  自己.クラス._all_depends. 行う |関連付け|
    場合 依存関係 = 関連付け.試す(:依存関係)
      送信(" _depend_ #{ depend } . ", 関連付け)
    end
  end
end