모듈: Mongoid::Factory

확장자:
공장
포함 항목:
공장
다음에 정의됨:
lib/mongoid/factory.rb

개요

데이터베이스 에서 가져온 문서를 인스턴스화합니다.

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

클래스: 인스턴스화기

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#build(klass, attributes = nil) ⇒ 문서

제공된 속성에서 새 Document 를 빌드합니다.

이 메서드는 속성에 klass의 판별자 키가 포함된 경우 klass 또는 klass의 하위 항목을 인스턴스화합니다.

속성에 판별자 키( 기본값 은 _type)가 포함되어 있고 판별자 값이 klass의 하위 항목에 해당하지 않는 경우 이 메서드는 klass 인스턴스 를 생성합니다.

예시:

문서를 작성합니다.

Mongoid::Factory.build(Person, { "name" => "Durran" })

매개변수:

  • class (클래스)

    _type 이(가) 없는 경우 인스턴스화할 클래스입니다.

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

    문서 속성입니다.

  • 옵션 (해시)

    사용자 지정 가능한 옵션 세트

반환합니다:

  • (문서)

    인스턴스화 문서 입니다.



154
155
156
# 파일 'lib/mongoid/factory.rb', 154줄

def 빌드(class, 속성 = nil)
  execution_build(class, 속성)
end

#execution_build(klass, attributes = nil, options = {}) ⇒ 문서

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

참고:

Ruby 2.x 버그로 인해 옵션 해시가 키워드 인수가 되지 않습니다. Ruby 2.x에 대한 지원 이 중단되면 옵션 해시를 키워드 인수로 다시 구현할 수 있습니다. bugs.ruby-lang.org/issues/15753를 참조하세요.

빌드를 실행합니다.

매개변수:

  • class (클래스)

    _type 이(가) 없는 경우 인스턴스화할 클래스입니다.

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

    문서 속성입니다.

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

    사용할 옵션입니다.

옵션 해시(options):

  • :execute_callbacks (true | false)

    플래그는 콜백을 실행 할지 여부를 지정합니다.

반환합니다:

  • (문서)

    인스턴스화 문서 입니다.



175
176
177
178
179
180
181
182
183
184
# 파일 'lib/mongoid/factory.rb', 175줄

def execution_build(class, 속성 = nil, 옵션 = {})
  속성 ||= {}
  dvalue = 속성[class.판별자_키] || 속성[class.판별자_키.to_sym]
  유형 = class.get_discrirator_mapping(dvalue)
  만약 유형
    유형.configure_document(속성, 옵션)
  other
    class.configure_document(속성, 옵션)
  end
end

# execution_from_db (klass, attributes = nil, criteria = nil,selected_fields = nil, execute_callbacks: Threaded.execute_callbacks?) ⇒ 문서

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

from_db를 실행합니다.

매개변수:

  • class (클래스)

    _type 이(가) 없는 경우 인스턴스화할 클래스입니다.

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

    문서 속성입니다.

  • 기준 (기준) (기본값: nil)

    선택적 기준 객체입니다.

  • selected_fields (해시) (기본값: nil)

    #only를 통해 조회된 필드입니다. selected_fields가 지정된 경우, 여기에 나열되지 않은 필드는 반환 문서 에서 액세스할 수 없습니다.

  • execution_callbacks (true | false) (기본값: Threaded.execute_callbacks?)

    이 메서드가 콜백을 호출해야 하는지 여부입니다. true인 경우 콜백이 정상적으로 호출됩니다. false인 경우 콜백은 pending_callbacks 목록에 저장되며 호출자는 나중에 run_pending_callbacks 를 호출할 책임이 있습니다. 포함된 연결이 포함된 전체 객체 그래프 가 구성될 때까지 콜백 실행을 연기하려면 이 옵션을 사용합니다.

반환합니다:

  • (문서)

    인스턴스화 문서 입니다.



234
235
236
237
238
239
# 파일 'lib/mongoid/factory.rb', 234줄

def execute_from_db(class, 속성 = nil, 기준 = nil,
                    selected_fields = nil,
                    execution_callbacks: 스레드.실행 콜백?)
  인스턴스화기.신규(class, 속성, 기준, selected_fields)
              .인스턴스(execution_callbacks: execution_callbacks)
end

#from_db(klass, attributes = nil, criteria = nil, selected_fields = nil) ⇒ Document

데이터베이스 에서 로드된 제공된 속성을 사용하여 새 Document 를 빌드합니다.

속성에 판별자 키( 기본값 은 _type)가 포함되어 있고 판별자 값이 klass의 하위 항목에 해당하지 않는 경우 이 메서드는 UnknownModel 오류를 발생시킵니다.

기준 객체가 지정되면 두 가지 방법으로 사용됩니다.

  1. 기준에 #only를 통해 지정된 필드 목록이 있는 경우 반환 문서 에는 해당 필드만 채워집니다.

  2. 기준에 참조 연관 관계가 있는 경우(예: 이 문서 가 다른 문서 의 연관 관계로 인스턴스화되는 경우), 반환된 문서의 역방향 연관 관계가 있는 경우 해당 문서 도 해당 문서의 역방향 연관 관계로 채워집니다.

예시:

문서를 작성합니다.

Mongoid::Factory.from_db(Person, { "name" => "Durran" })

매개변수:

  • class (클래스)

    _type 이(가) 없는 경우 인스턴스화할 클래스입니다.

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

    문서 속성입니다.

  • 기준 (기준) (기본값: nil)

    선택적 기준 객체입니다.

  • selected_fields (해시) (기본값: nil)

    #only를 통해 조회된 필드입니다. selected_fields가 지정된 경우, 여기에 나열되지 않은 필드는 반환 문서 에서 액세스할 수 없습니다.

반환합니다:

  • (문서)

    인스턴스화 문서 입니다.



212
213
214
# 파일 'lib/mongoid/factory.rb', 212줄

def from_db(class, 속성 = nil, 기준 = nil, selected_fields = nil)
  execute_from_db(class, 속성, 기준, selected_fields)
end