예외: Mongoid::Errors::UnrecognizedModelAlias
- 상속:
-
MongoidError
- 객체
- StandardError
- MongoidError
- Mongoid::Errors::UnrecognizedModelAlias
- 다음에 정의됨:
- lib/mongoid/errors/unrecognized_model_alias.rb
개요
다형성 연관이 쿼리되지만 연관 유형을 확인할 수 없을 때 발생합니다. 이는 일반적으로 데이터베이스 의 데이터가 더 이상 존재하지 않는 유형을 참조할 때 발생합니다.
예시 들어 다음 모델을 가정해 보겠습니다.
class Manager
include Mongoid::Document
belongs_to :unit, polymorphic: true
end
'managers' 컬렉션 에 다음과 같은 문서 있다고 가정해 보겠습니다.
{ _id: ..., unit_id: ..., unit_type: 'Department::Engineering' }
리팩터링의 어느 점 에서 'Department::Engineering' 모델의 이름을 다른 이름으로 변경하면 Mongoid는 더 이상 이 연결 유형을 확인할 수 없으며 'manager.unit' 이 예외가 발생합니다.
이 예외를 수정하려면 모델 클래스에 별칭을 추가하여 이름을 바꾼 후에도 해당 모델을 찾을 수 있도록 할 수 있습니다.
module Engineering
class Department
include Mongoid::Document
identify_as 'Department::Engineering'
# ...
end
end
클래스 이름 대신 고유한 문자열을 사용하여 데이터베이스 에서 이러한 다형성 유형을 식별하는 것이 더 나은 방법입니다(예: 'Department::Engineering' 대신 'dept').
상수 요약
MongoidError에서 상속된 상수
인스턴스 속성 요약
MongoidError에서 상속된 속성
#problem, #Resolution, #summary
인스턴스 메서드 요약 접기
-
#initialize(model_alias) ⇒ UnrecognizedModelAlias
생성자
UnrecognizedModelAlias의 새 인스턴스 입니다.
MongoidError에서 상속된 메서드
생성자 세부 정보
#initialize(model_alias) ⇒ UnrecognizedModelAlias
UnrecognizedModelAlias의 새 인스턴스 반환합니다.
43 44 45 46 47 48 49 50 |
# 파일 'lib/mongoid/errors/unrecognized_model_alias.rb', 줄 43 def 초기화(model_alias) super( ( 'unrecognized_model_alias ', model_alias: model_alias.검사 ) ) end |