모듈: Mongoid::Association::Depending

확장자:
ActiveSupport::Concern
포함 항목:
Mongoid::Association
다음에 정의됨:
lib/mongoid/association/depending.rb

개요

이 모듈에서는 연관 관계에 대한 계단식 삭제 및 무효화를 설정하기 위한 동작과 적절한 전략에 위임하는 방법을 정의합니다.

상수 요약 접기

STRATEGIES =

유효한 종속 전략.

%i[
  delete_all
  파괴
  nullify
  restrict_with_exception
  restrict_with_error
]

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

클래스 메서드 세부 정보

.정의_종속!(association) ⇒ 클래스

문서 에 대한 계단식 정보를 추가하여 제거 시 관련 문서를 처리하다 하는 방법을 알아봅니다.

예시:

계단식 정보 설정

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

매개변수:

반환합니다:

  • (클래스)

    문서 의 클래스입니다.



55
56
57
58
59
60
61
62
63
64
65
# 파일 'lib/mongoid/association/depending.rb', 줄 55

def self.정의_종속!(연관 관계)
  유효성을 검사합니다!(연관 관계)
  연관 관계.inverse_class. do |class|
    만약 class.종속_소유자 != class
      class.부양 가족 = []
      class.종속_소유자 = class
    end

    class.부양 가족.push(연관 관계) 만약 연관 관계.종속 && !class.부양 가족.포함?(연관 관계)
  end
end

.유효성을 검사합니다!(association) ⇒ 객체

Validates that an association's dependent strategy is within the allowed enumeration.

매개변수:

다음을 발생시킵니다.



75
76
77
78
79
80
81
# 파일 'lib/mongoid/association/depending.rb', 줄 75

def self.유효성을 검사합니다!(연관 관계)
  반환 만약 전략.포함?(연관 관계.종속)

  올리다 오류::InvalidDependentStrategy.신규(연관 관계,
                                             연관 관계.종속,
                                             전략)
end

인스턴스 메서드 세부 정보

#apply_destory_dependencies!객체

모든 계단식 삭제, 삭제 또는 무효화를 수행합니다. 작업을 수행할 적절한 전략을 위임합니다.

예시:

캐스케이드를 실행합니다.

document.apply_destroy_dependencies!


88
89
90
91
92
93
94
# 파일 'lib/mongoid/association/depending.rb', 줄 88

def apply_destory_dependencies!
  self.클래스._all_depends. do |연관 관계|
    만약 종속 = 연관 관계.try(:Dependent)
      send("_depend_#{dependency}!", 연관 관계)
    end
  end
end