Exceção: Mongoid::Errors::UnrecognizedModelAlias
- Herda:
-
MongoidError
- Objeto
- StandardError
- MongoidError
- Mongoid::Errors::UnrecognizedModelAlias
- Definido em:
- lib/mongoid/errors/unrecognizanted_model_alias.rb
Visão geral
Elevado quando uma associação polimórfica é consultada, mas o tipo da associação não pode ser resolvido. Isso geralmente acontece quando os dados no banco de dados fazem referência a um tipo que não existe mais.
Por exemplo, considere o seguinte modelo:
class Manager
include Mongoid::Document
belongs_to :unit, polymorphic: true
end
Imagine que há um documento na coleção 'managers' que se parece com isto:
{ _id: ..., unit_id: ..., unit_type: 'Department::Engineering' }
Se, em algum ponto de sua refatoração, você renomear o modelo 'Department::Engineering' para outra coisa, o Mongoid não poderá mais resolver o tipo dessa associação e solicitar 'manager.unit' criará essa exceção.
Para corrigir essa exceção, você pode adicionar um alias à classe do modelo para que ela ainda possa ser encontrada, mesmo depois de renomeá-la:
module Engineering
class Department
include Mongoid::Document
identify_as 'Department::Engineering'
# ...
end
end
A melhor prática seria usar strings únicas em vez de nomes de classe para identificar esses tipos polimórficos no banco de dados (por exemplo 'dept' em vez de 'Departamento::Engineering').
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(model_alias) ➤ UnrecognizedModelAlias
construtor
Uma nova instância de UnrecognizedModelAlias.
Métodos herdados de MongoidError
Detalhes do construtor
#initialize(model_alias) ➤ UnrecognizedModelAlias
Retorna uma nova instância de UnrecognizedModelAlias.
43 44 45 46 47 48 49 50 |
# File 'lib/mongoid/errors/unrecognizanted_model_alias.rb', linha 43 def inicializar(model_alias) super( ( 'unecognized_model_alias ', model_alias: model_alias.inspecionar ) ) end |