모듈: Mongoid::Association::Depending

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

개요

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

상수 요약 접기

STRATEGIES =

유효한 종속 전략.

[
    :delete_all,
    :destory,
    :nullify,
    :restrict_with_Exception,
    :restrict_with_error
]

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

클래스 메서드 세부 정보

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

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

예시:

계단식 정보 설정

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

매개변수:

반환합니다:

  • (클래스)

    문서 의 클래스입니다.



57
58
59
60
61
62
63
64
65
66
67
68
69
# 파일 'lib/mongoid/association/depending.rb', 줄 57

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

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

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

연결의 종속 전략이 허용된 열거형 내에 있는지 확인합니다.

매개변수:



79
80
81
82
83
84
85
# 파일 'lib/mongoid/association/depending.rb', 줄 79

def self.유효성을 검사합니다!(연관 관계)
  하지 않는 한 전략.포함?(연관 관계.종속)
    올리다 오류::InvalidDependentStrategy.신규(연관 관계,
                                               연관 관계.종속,
                                               전략)
  end
end

인스턴스 메서드 세부 정보

#apply_destory_dependencies!객체

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

예시:

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

document.apply_destroy_dependencies!


92
93
94
95
96
97
98
# 파일 'lib/mongoid/association/depending.rb', 줄 92

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