클래스: Mongoid::Association::Nested::One

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

개요

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

인스턴스 속성 요약 접기

Buildable에 포함된 속성

#association, #attributes, #existing, #options

인스턴스 메서드 요약 접기

Buildable에 포함된 메서드

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

생성자 세부 정보

#initialize(association, attributes, options) ⇒ One

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

예시:

빌더를 인스턴스화합니다.

One.new(association, attributes)

매개변수:

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

    연결 메타데이터입니다.

  • 속성 (해시)

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

  • 옵션 (해시)

    옵션이 정의되었습니다.



52
53
54
55
56
57
58
# 파일 'lib/mongoid/association/nested/one.rb', 줄 52

def 초기화(연관 관계, 속성, 옵션)
  @attributes = 속성.with_in Different_access
  @association = 연관 관계
  @options = 옵션
  @class_name = 옵션[:class_name] ? 옵션[:class_name].상수화 : 연관 관계.class
  @destory = @attributes.삭제(:_destory)
end

인스턴스 속성 세부 정보

#파괴객체

속성 삭제 값을 반환합니다.



13
14
15
# 파일 'lib/mongoid/association/nested/one.rb', 줄 13

def 파괴
  @destory
end

인스턴스 메서드 세부 정보

#build(parent) ⇒ 문서

참고:

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

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

예시:

1-1 중첩 문서 를 작성합니다.

one.build(person, as: :admin)

매개변수:

  • 부모 (문서)

    상위 문서.

반환합니다:

  • (문서)

    빌드된 문서 입니다.



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

def 빌드(부모)
  반환 만약 거부?(부모, 속성)
  @existing = 부모.send(연관 관계.이름)
  만약 update?
    delete_id(속성)
    기존.Assign_attributes(속성)
  elsif 대체?
    부모.send(연관 관계.세터, 공장.빌드(@class_name, 속성))
  elsif 삭제?
    부모.send(연관 관계.세터, nil)
  other
    check_for_id_evilation!
  end
end