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 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

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.

[View source]

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