모듈: Mongoid::Traversable::ClassMethods

다음에 정의됨:
lib/mongoid/traversable.rb

개요

순회 가능 동작에 대한 클래스 수준 메서드입니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#유전성?true | false

문서 가 다른 문서 의 하위 클래스인지 확인합니다.

예시:

문서가 하위 클래스인지 확인합니다.

Square.hereditary?

반환합니다:

  • (true | false)

    유전적이면 참, 그렇지 않으면 거짓입니다.



19
20
21
# 파일 'lib/mongoid/traversable.rb', 줄 19

def 유전?
  !!(슈퍼클래스 < 몽고이드::문서)
end

#상속됨(하위 클래스) ⇒ 객체

상속할 때 부모 클래스에서 필드를 복사하고 자식 클래스를 시작하도록 설정하다 하여 Rails edge에서 더 이상 사용되지 않는 이전 class_inheritable_accessor의 동작을 모방합니다.

Rubocop:Metrics/AbcSize 비활성화

예시:

이 클래스에서 상속합니다.

Person.inherited(Doctor)

매개변수:

  • 하위 클래스 (클래스)

    상속하는 클래스입니다.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 파일 'lib/mongoid/traversable.rb', 줄 33

def 상속된(하위 클래스)
  super
  @_type = nil
  하위 클래스.aliased_fields = aliased_fields.dup
  하위 클래스.localized_fields = localized_fields.dup
  하위 클래스.필드 = 필드.dup
  하위 클래스.pre_processed_defaults = pre_processed_defaults.dup
  하위 클래스.post_processed_defaults = post_processed_defaults.dup
  하위 클래스._declared_scopes = 해시.신규 { |_hash, | _declared_scopes[] }
  하위 클래스.판별자_값 = 하위 클래스.이름

  # 여기에서 이 작업을 수행해야 합니다.
  # 위의 하위 클래스에서 재정의되었습니다.
  하위 클래스.포함 판별자 조회

  # 상속이 진행 중인 경우에만 _type 필드 가 필요하지만 다음을 수행해야 합니다.
  # 이전 버전과의 호환성을 위해 루트 클래스에도 추가합니다.
  반환 만약 필드.키?(판별자_키)

  default_proc = -> { self.클래스.판별자_값 }
  필드(판별자_키, 기본값: default_proc, 유형: 문자열)
end