Exceção: Mongoid::Errors::UnregisteredClass
- Herda:
-
MongoidError
- Objeto
- StandardError
- MongoidError
- Mongoid::Errors::UnregisteredClass
- Definido em:
- lib/mongoid/errors/unregistered_class.rb
Visão geral
Gerado quando o Mongoid tenta consultar o identificador a ser usado para uma determinada classe em uma associação polimórfica, mas a classe não foi registrada anteriormente pelo resolvedor que foi usado para a consulta.
Aqui está um exemplo:
class Department
include Mongoid::Document
has_many :managers, as: :unit
end
class Manager
include Mongoid::Document
belongs_to :unit, polymorphic: :org
end
A classe Manager é configurada para usar um resolvedor personalizado chamado ':org' ao resolver a associação polimórfica 'unit'. No entanto, a classe `Department' não está registrada nesse resolvedor. Quando o programa tenta associar um registro de gerente a um departamento, ele não consegue encontrar a chave necessária no resolvedor `:org' e falha com essa exceção.
A solução é garantir que a classe 'Department' esteja adequadamente registrada no resolvedor `:org':
class Department
include Mongoid::Document
identify_as resolver: :org
has_many :managers, as: :unit
end
Resumo constante
Constantes herdadas de MongoidError
Resumo do atributo de instância
Atributos herdados de MongoidError
#problema, #resolução, #summary
Recolhimento do Resumo do método de instância
-
#initialize(klass, resolver) ⇒ UnregisteredClass
construtor
Uma nova instância de UnregisteredClass.
Métodos herdados de MongoidError
Detalhes do construtor
#initialize(klass, resolver) ⇒ UnregisteredClass
Retorna uma nova instância de UnregisteredClass.
36 37 38 39 40 41 42 43 44 |
# Arquivo 'lib/mongoid/errors/unregistered_class.rb', linha 36 def inicializar(classe, resolvedor) super( ( 'unregistered_class', classe: classe, resolvedor: resolvedor.inspecionar ) ) end |