예외: Mongoid::Errors::UnregisteredClass

상속:
MongoidError
  • 객체
모두 표시
다음에 정의됨:
lib/mongoid/errors/unregistered_class.rb

개요

Mongoid가 다형성 연관 관계에서 주어진 클래스에 사용할 식별자를 쿼리 하려고 하지만, 해당 클래스가 쿼리 에 사용된 리졸버에 의해 이전에 등록된 적이 없을 때 발생합니다.

예시 들면 다음과 같습니다.

class Department
  include Mongoid::Document
  has_many :managers, as: :unit
end

class Manager
  include Mongoid::Document
  belongs_to :unit, polymorphic: :org
end

관리자 클래스는 다형성 'unit' 연관 관계를 해석할 때 ':org'라는 사용자 지정 리졸버를 사용하도록 구성됩니다. 그러나 `Department` 클래스는 해당 리졸버에 등록되지 않습니다. 프로그램이 관리자 기록 부서와 연결하려고 하면 `:org` 해석기에서 필요한 키를 찾을 수 없으며 이 예외가 발생하여 실패합니다.

해결책은 'Department' 클래스가 `:org` 리졸버에 올바르게 등록되었는지 확인하는 것입니다.

class Department
  include Mongoid::Document
  identify_as resolver: :org
  has_many :managers, as: :unit
end

상수 요약

MongoidError에서 상속된 상수

MongoidError::BASE_KEY

인스턴스 속성 요약

MongoidError에서 상속된 속성

#problem, #Resolution, #summary

인스턴스 메서드 요약 접기

MongoidError에서 상속된 메서드

#compose_message

생성자 세부 정보

#initialize(klass, resolver) ⇒ UnregisteredClass

UnregisteredClass의 새 인스턴스 반환합니다.

[소스 보기]

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

def 초기화(class, 리졸버)
  super(
    Compose_message(
      'unregistered_class',
      class: class,
      해석기: 리졸버.검사
    )
  )
end