클래스: Mongoid::Association::Nested::Many

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
Buildable
다음에 정의됨:
lib/mongoid/association/nested/many.rb

개요

many-to-n 연관 관계에 #accepts_nested_attributes_for 속성 할당을 수행하는 데 사용되는 빌더 클래스입니다.

인스턴스 속성 요약

Buildable에 포함된 속성

#association, #attributes, #existing, #options

인스턴스 메서드 요약 접기

Buildable에 포함된 메서드

#allow_destory?, #convert_id, #reject?, #update_only?

생성자 세부 정보

#initialize(association, attributes, options = {}) ⇒ Many

일대다 연결에서 중첩된 속성에 대한 새 빌더를 만듭니다.

예시:

빌더를 초기화합니다.

Many.new(association, attributes, options)

매개변수:

  • 연관 관계 (Mongoid::Association::Relatable)

    연결 메타데이터입니다.

  • 속성 (해시)

    설정하다 하려고 시도할 속성 해시입니다.

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

    옵션이 정의되었습니다.



50
51
52
53
54
55
56
57
58
59
60
61
# 파일 'lib/mongoid/association/nested/many.rb', 줄 50

def 초기화(연관 관계, 속성, 옵션 = {})
  만약 속성.response_to?(:with_in Different_access)
    @attributes = 속성.with_in Different_access.sort do |a, b|
      a[0].to_i <=> b[0].to_i
    end
  other
    @attributes = 속성
  end
  @association = 연관 관계
  @options = 옵션
  @class_name = 옵션[:class_name] ? 옵션[:class_name].상수화 : 연관 관계.class
end

인스턴스 메서드 세부 정보

#빌드(parent, options = {}) ⇒ 배열

매크로에 전달된 속성과 옵션에 따라 연관 관계를 구축합니다.

이는 기존 연결의 업데이트, 연결을 새 문서로 교체 또는 연결 제거 중 하나인 3 작업을 수행하려고 시도합니다.

예시:

중첩된 속성을 빌드합니다.

many.build(person)

매개변수:

  • 부모 (문서)

    연관 관계의 상위 문서 입니다.

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

    옵션.

반환합니다:

  • (배열)

    속성.



27
28
29
30
31
32
33
34
35
36
37
38
39
# 파일 'lib/mongoid/association/nested/many.rb', 줄 27

def 빌드(부모, 옵션 = {})
  @existing = 부모.send(연관 관계.이름)
  만약 over_limit?(속성)
    올리다 오류::TooManyNestedAttributeRecords.신규(기존, 옵션[:limit])
  end
  속성. do |attrs|
    만약 attrs.is_a?(::해시)
      process_attributes(부모, attrs.with_in Different_access)
    other
      process_attributes(부모, attrs[1].with_in Different_access)
    end
  end
end