클래스: Mongoid::Association::Many

상속:
프록시
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
Enumerable
다음에 정의됨:
lib/mongoid/association/many.rb

개요

이는 모두 다대일 및 다대다 연결 프록시를 위한 슈퍼클래스입니다.

직접 알려진 하위 클래스

Embedded::EmbedsMany::Proxy, Referenced::HasMany::Proxy

상수 요약

프록시에서 상속된 상수

Proxy::KEEPER_METHODS

인스턴스 속성 요약

프록시에서 상속된 속성

#_association, #_base, #_target

인스턴스 메서드 요약 접기

프록시에서 상속된 메서드

apply_ordering, #extend_proxys, #initialize, #klass, #reset_unloaded, #substutable

마셜러블에 포함된 메서드

#marshal_dump, #marshal_load

생성자 세부 정보

이 클래스는 Mongoid::Association::Proxy의 생성자를 상속합니다.

인스턴스 메서드 세부 정보

#비어 있나요?true | false

연관 관계가 비어 있나요?

예시:

연관 관계가 비어 있나요?

person.addresses.blank?

반환합니다:

  • (true | false)

    연관 관계가 비어 있는지 여부.



22
23
24
# 파일 'lib/mongoid/association/many.rb', 줄 22

def 비어 있나요?
  !어떤?
end

#create(attributes = nil, type = nil, &block) ⇒ 문서

참조 다수 연관 관계에 새 문서를 생성합니다. 상위 항목이 유지된 경우 문서가 저장됩니다.

예시:

새 문서를 만들고 저장합니다.

person.posts.create(:text => "Testing")

매개변수:

  • 속성 (해시) (기본값: nil)

    생성할 속성입니다.

  • 유형 (클래스) (기본값: nil)

    생성할 문서 의 선택적 유형입니다.

반환합니다:

  • (문서)

    새로 생성된 문서입니다.



36
37
38
39
40
41
42
43
44
# 파일 'lib/mongoid/association/many.rb', 줄 36

def create(속성 = nil, 유형 = nil, &차단)
  만약 속성.is_a?(::배열)
    속성.map { |attrs| create(attrs, 유형, &차단) }
  other
    doc = 빌드(속성, 유형, &차단)
    _base.지속되었나요? ? doc.저장 : raise_unsaved(doc)
    doc
  end
end

#create!(attributes = nil, type = nil, &block) ⇒ 문서

참조 다수 연관 관계에 새 문서 를 생성합니다. 이렇게 하면 부모 문서가 유지된 경우 문서 가 저장되고 유효성 검사 에 실패하면 오류가 발생합니다.

예시:

새 문서를 만들고 저장합니다.

person.posts.create!(:text => "Testing")

매개변수:

  • 속성 (해시) (기본값: nil)

    생성할 속성입니다.

  • 유형 (클래스) (기본값: nil)

    생성할 문서 의 선택적 유형입니다.

반환합니다:

  • (문서)

    새로 생성된 문서입니다.

다음을 발생시킵니다.



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 파일 'lib/mongoid/association/many.rb', 줄 59

def 생성!(속성 = nil, 유형 = nil, &차단)
  만약 속성.is_a?(::배열)
    속성.map { |attrs| 생성!(attrs, 유형, &차단) }
  other
    doc = 빌드(속성, 유형, &차단)

    배열(doc). do |doc|
      doc.try(:run_pending_callbacks)
    end

    _base.지속되었나요? ? doc.save! : raise_unsaved(doc)
    doc
  end
end

#find_or_create_by(attrs = {}, type = nil, &block) ⇒ 문서

조건이 주어진 첫 번째 문서를 찾거나 제공된 조건을 사용하여 새 문서를 만듭니다.

@param [ Hash ] attrs The attributes to search or create with.
@param [ Class ] type The optional type of document to create.

예시:

찾거나 만듭니다.

person.posts.find_or_create_by(:title => "Testing")

반환합니다:

  • (문서)

    기존 문서 또는 새로 생성된 문서.



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

def find_or_create_by(attrs = {}, 유형 = nil, &차단)
  find_or(:create, attrs, 유형, &차단)
end

#find_or_create_by!(attrs = {}, type = nil, &block) ⇒ 문서

조건이 주어진 첫 번째 문서 를 찾거나 제공된 조건을 사용하여 새 문서 를 만듭니다. 유효성 검사 에 실패하면 오류가 발생합니다.

예시:

찾거나 만듭니다.

person.posts.find_or_create_by!(:title => "Testing")

매개변수:

  • attrs (해시) (기본값: {})

    검색 하거나 생성할 속성입니다.

  • 유형 (클래스) (기본값: nil)

    생성할 문서 의 선택적 유형입니다.

반환합니다:

  • (문서)

    기존 문서 또는 새로 생성된 문서.

다음을 발생시킵니다.



100
101
102
# 파일 'lib/mongoid/association/many.rb', 줄 100

def find_or_create_by!(attrs = {}, 유형 = nil, &차단)
  find_or(:create!, attrs, 유형, &차단)
end

#find_or_initialize_by(attrs = {}, type = nil, &block) ⇒ 문서

조건이 주어진 첫 번째 Document 를 찾거나 제공된 조건으로 새 문서 를 인스턴스화합니다.

예시:

찾거나 초기화합니다.

person.posts.find_or_initialize_by(:title => "Test")

매개변수:

  • attrs (해시) (기본값: {})

    Atlas Search 또는 초기화할 속성입니다.

  • 유형 (클래스) (기본값: nil)

    빌드할 선택적 하위 클래스입니다.

반환합니다:

  • (문서)

    기존 문서 또는 새로 인스턴스화된 문서입니다.



114
115
116
# 파일 'lib/mongoid/association/many.rb', 줄 114

def find_or_initialize_by(attrs = {}, 유형 = nil, &차단)
  find_or(:build, attrs, 유형, &차단)
end

#nil?false

이 프록시는 nil이 될 수 없습니다.

예시:

프록시가 nil인가요?

relation.nil?

반환합니다:

  • (false)

    항상 거짓입니다.



124
125
126
# 파일 'lib/mongoid/association/many.rb', 줄 124

def nil?
  거짓
end

#respond_to?(name, include_private = false) ⇒ true | false

메서드 누락이 재정의되었으므로 이 항목도 재정의해야 합니다.

예시:

프록시가 메서드에 응답하나요?

relation.respond_to?(:name)

매개변수:

  • 이름 (기호)

    메서드 이름입니다.

  • include_private (true | false) (기본값은 false)

    비공개 메서드를 포함할지 여부입니다.

반환합니다:

  • (true | false)

    프록시가 메서드에 응답하는 경우.



137
138
139
140
# 파일 'lib/mongoid/association/many.rb', 줄 137

def response_to?(이름, include_private = 거짓)
  [].response_to?(이름, include_private) ||
    class.response_to?(이름, include_private) || super
end

#범위 지정기준

연결 기준에 대한 공개 액세스 입니다.

예시:

범위 연결을 가져옵니다.

relation.scoped

반환합니다:

  • (기준)

    범위 기준입니다.



148
149
150
# 파일 'lib/mongoid/association/many.rb', 줄 148

def 범위 지정
  기준
end

#serializable_hash(options = {}) ⇒ Hash

ActiveModel의 JSON 및 XML 직렬 변환기에서 사용하는 직렬화 가능한 해시로 문서 를 가져옵니다. 이 재정의는 해시에서 연관 관계를 가져오기 위해 :include 및 :Exception 옵션을 전달할 수 있도록 하기 위한 것입니다.

예시:

직렬화 가능한 해시를 가져옵니다.

relation.serializable_hash

매개변수:

  • 옵션 (해시) (기본값: {})

    전달할 옵션입니다.

옵션 해시(options):

  • :제외 (기호 | string | Array<Symbol | string>)

    이러한 필드 는 포함하지 마세요.

  • :include (기호 | string | Array<Symbol | string>)

    포함할 연관 관계입니다.

  • :only (기호 | string | Array<Symbol | string>)

    필드 를 이러한 항목으로 제한합니다.

반환합니다:

  • (해시)

    문서, 직렬화할 준비가 되었습니다.



166
167
168
# 파일 'lib/mongoid/association/many.rb', 줄 166

def serializable_hash(옵션 = {})
  _target.map { |문서| 문서.serializable_hash(옵션) }
end

#unscoped기준

기본값 범위를 적용하지 않고 내장된 문서의 기준을 가져옵니다.

예시:

범위가 지정되지 않은 기준을 가져옵니다.

person.addresses.unscoped

반환합니다:

  • (기준)

    범위가 지정되지 않은 기준입니다.



177
178
179
# 파일 'lib/mongoid/association/many.rb', 줄 177

def 범위가 지정되지 않은
  기준.범위가 지정되지 않은
end