Exceção: Mongoid::Errors::UnregisteredClass

Herda:
MongoidError
  • Objeto
mostrar tudo
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 denominado :org ao resolver a associação polimórfica unit. No entanto, a classe Department não está registrada com esse resolvedor. Quando o programa tenta associar um registro de gerente a um departamento, ele não consegue encontrar a chave necessária no resolvedor de :org e falha com essa exceção.

A solução é garantir que a classe Department esteja registrada corretamente com o resolvedor :org:

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

Resumo constante

Constantes herdadas de MongoidError

MongoidError::BASE_KEY

Resumo do atributo de instância

Atributos herdados de MongoidError

#problema, #resolução, #summary

Recolhimento do Resumo do método de instância

Métodos herdados de MongoidError

#compose_message

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(
    compound_message(
      'unregistered_class',
      classe: classe,
      resolvedor: resolvedor.inspecionar
    )
  )
end