모듈: Mongoid::Association

확장자:
ActiveSupport::Concern
다음을 포함합니다.
접근 자, 빌더, 종속성, Embedded::Cyclic, 매크로, Referenced:: Auto Save , Referenced::CounterCache, Referenced::Syncable, 리플렉션
포함 항목:
컴포저블
다음에 정의됨:
lib/mongoid/association.rb,
lib/mongoid/association/one.rb,
lib/mongoid/association/many.rb,
lib/mongoid/association/eager.rb,
lib/mongoid/association/proxy.rb,
lib/mongoid/association/macos.rb,
lib/mongoid/association/nested.rb,
lib/mongoid/association/options.rb,
lib/mongoid/association/bindable.rb,
lib/mongoid/association/ 빌더.rb,
lib/mongoid/association/accessors.rb,
lib/mongoid/association/depending.rb,
lib/mongoid/association/relatable.rb,
lib/mongoid/association/nested/one.rb,
lib/mongoid/association/marshalable.rb,
lib/mongoid/association/nested/many.rb,
lib/mongoid/association/reflections.rb,
lib/mongoid/association/constrainable.rb,
lib/mongoid/association/eager_loadable.rb,
lib/mongoid/association/embedded/eager.rb,
lib/mongoid/association/embedded/Cyclic.rb,
lib/mongoid/association/embedded/batchable.rb,
lib/mongoid/association/referenced/has_one.rb,
lib/mongoid/association/embedded/embeds_one.rb,
lib/mongoid/association/referenced/has_many.rb,
lib/mongoid/association/referenced/syncable.rb,
lib/mongoid/association/embedded/embedded_in.rb,
lib/mongoid/association/embedded/embeds_many.rb,
lib/mongoid/association/referenced/auto_save.rb,
lib/mongoid/association/referenced/belongs_to.rb,
lib/mongoid/association/nested/nested_buildable.rb,
lib/mongoid/association/referenced/counter_cache.rb,
lib/mongoid/association/referenced/has_one/eager.rb,
lib/mongoid/association/referenced/has_one/proxy.rb,
lib/mongoid/association/embedded/embeds_one/proxy.rb,
lib/mongoid/association/referenced/has_many/eager.rb,
lib/mongoid/association/referenced/has_many/proxy.rb,
lib/mongoid/association/embedded/embedded_in/proxy.rb,
lib/mongoid/association/embedded/embeds_many/proxy.rb,
lib/mongoid/association/referenced/has_one/Binding.rb,
lib/mongoid/association/embedded/embeds_one/Binding.rb,
lib/mongoid/association/referenced/belongs_to/eager.rb,
lib/mongoid/association/referenced/belongs_to/proxy.rb,
lib/mongoid/association/referenced/has_many/Binding.rb,
lib/mongoid/association/embedded/embedded_in/Binding.rb,
lib/mongoid/association/embedded/embeds_many/Binding.rb,
lib/mongoid/association/referenced/has_one/buildable.rb,
lib/mongoid/association/embedded/embeds_one/buildable.rb,
lib/mongoid/association/referenced/belongs_to/Binding.rb,
lib/mongoid/association/referenced/has_many/buildable.rb,
lib/mongoid/association/embedded/embedded_in/buildable.rb,
lib/mongoid/association/embedded/embeds_many/buildable.rb,
lib/mongoid/association/referenced/has_many/enumerable.rb,
lib/mongoid/association/referenced/belongs_to/buildable.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/Binding.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb

개요

Mongoid 문서 에 연관 동작을 추가하는 Mixin 모듈입니다. #embedded? 문서의 상대적 연결 상태 를 나타냅니다.

네임스페이스 아래에 정의됨

모듈: 접근 자, 바인딩가능, 빌더, 제약 가능 , 종속, EagerLoadable, 임베디드, 매크로, 마셜 가능 , 중첩 , 옵션 , 참조 됨 , 리플렉션 , 관련 가능한 클래스: Eager, Many, One, Proxy

상수 요약 접기

MACRO_MAPPING =

매크로를 해당 연관 클래스에 매핑합니다.

반환합니다:

  • (해시)

    매크로에서 연관 관계 클래스로의 매핑.

{
    embeds_one: 연관 관계::Embedded::Embeds One,
    embeddeds_many: 연관 관계::Embedded::Embeds Many,
    embedded_in: 연관 관계::Embedded::EmbeddedIn,
    has_one: 연관 관계::참조됨::Has One,
    has_many: 연관 관계::참조됨::Has Many,
    has_and_belongs_to_many: 연관 관계::참조됨::Has And Belongs To Many,
    exist_to: 연관 관계::참조됨::Belongs To,
}.동결

종속에서 포함된 상수

의존::STRATEGIES

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

리플렉션에 포함된 메서드

#reflect_on_all_association, #reflect_on_association

매크로에 포함된 메서드

#associations

종속성에 포함된 메서드

#apply_destory_dependencies!, 정의_종속성!, 유효성을 검사합니다!

접근자에 포함된 메서드

#__build__, #create_relation, #reset_relation_criteria, #set_relation

Referenced::Syncable에 포함된 메서드

#_syncable?, #_synced, #_synced?, #remove_inverse_keys, #update_inverse_keys

Referenced::CounterCache에 포함된 메서드

정의_콜백!, #reset_counters

Referenced::Auto Save에 포함된 메서드

#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!

인스턴스 속성 세부 정보

#_association객체

속성 _association의 값을 반환합니다.



51
52
53
# 파일 'lib/mongoid/association.rb', 51줄

def _association
  @_association
end

인스턴스 메서드 세부 정보

#association_name기호

이 문서 의 연결 이름을 가져옵니다. 연관 관계가 정의되지 않은 경우

an error will be raised.

예시:

연관 관계 이름을 가져옵니다.

document.association_name

반환합니다:

  • (기호)

    연관 관계 이름입니다.

다음을 발생시킵니다.



98
99
100
101
# 파일 'lib/mongoid/association.rb', 98줄

def association_name
  올리다 오류::NoMetadata.신규(self.클래스.이름) 하지 않는 한 _association
  _association.이름
end

#embedded?true | false

적절한 채널을 통해 문서 자체가 다른 문서 에 포함되어 있는지 확인합니다. (부모 문서 가 있는 경우)

예시:

문서 가 내장되어 있나요?

address.embedded?

반환합니다:

  • (true | false)

    문서 문서 있으면 참입니다.



65
66
67
# 파일 'lib/mongoid/association.rb', 65줄

def 임베디드?
  @embedded ||= (주기적 ? _parent.현재? : self.클래스.임베디드?)
end

#embedded_many?true | false

문서 가 embeddeds_many 연관 관계의 일부인지 확인합니다.

예시:

내장된 문서 가 여러 개인가요?

address.embedded_many?

반환합니다:

  • (true | false)

    임베드에 많은 경우 true입니다.



75
76
77
# 파일 'lib/mongoid/association.rb', 75줄

def embedded_many?
  _association && _association.is_a?(연관 관계::Embedded::Embeds Many)
end

#embedded_one?true | false

문서 가 embeddeds_one 연관 관계의 일부인지 확인합니다.

예시:

내장된 문서 가 있나요?

address.embedded_one?

반환합니다:

  • (true | false)

    포함된 경우 true입니다.



85
86
87
# 파일 'lib/mongoid/association.rb', 85줄

def embedded_one?
  _association && _association.is_a?(연관 관계::Embedded::Embeds One)
end

#referenced_many?true | false

문서 가 reference_many 연관 관계의 일부인지 확인합니다.

예시:

참고 문헌의 문서 가 많습니까?

post.referenced_many?

반환합니다:

  • (true | false)

    참조가 많은 경우 참입니다.



109
110
111
# 파일 'lib/mongoid/association.rb', 109줄

def reference_many?
  _association && _association.is_a?(연관 관계::참조됨::Has Many)
end

#referenced_one?true | false

문서 가 reference_one 연관 관계의 일부인지 확인합니다.

예시:

참조 문서에 있는 문서 가 참조 문서에 포함되어 있나요?

address.referenced_one?

반환합니다:

  • (true | false)

    참조에 있으면 참입니다.



119
120
121
# 파일 'lib/mongoid/association.rb', 119줄

def reference_one?
  _association && _association.is_a?(연관 관계::참조됨::Has One)
end

#reload_relations해시

로드된 연관 관계를 반복하고 다시 로드하기 위한 편리한 메서드입니다.

예시:

연결을 다시 로드합니다.

document.reload_relations

반환합니다:

  • (해시)

    연결 메타데이터입니다.



130
131
132
133
134
135
136
137
138
# 파일 'lib/mongoid/association.rb', 130줄

def reload_relations
  관계.각각의 쌍 do |이름, meta|
    만약 instance_variable_defined?("@_#{name}")
      만약 _parent.nil? || instance_variable_get("@_#{name}") != _parent
        remove_instance_variable("@_#{name}")
      end
    end
  end
end