异常:Mongoid::Errors::UnrecognizedModelAlias

继承:
MongoidError
  • 对象
显示全部
定义于:
lib/mongoid/errors/unrecognized_model_alias.rb

Overview

当查询多态关联但无法解析关联类型时,则触发。 当数据库中的数据引用不再存在的类型时,通常会发生这种情况。

示例,考虑以下模型:

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

更好的做法是使用唯一字符串而不是类名来标识数据库中的这些多态类型(例如 'dept' 而不是 'Department::Engineering')。

常量摘要

MongoidError继承的常量

MongoidError::BASE_KEY

实例属性摘要

MongoidError继承的属性

#问题#分辨率#summary

实例方法摘要折叠

MongoidError继承的方法

#compose_message

构造函数详情

#initialize (model_alias) UnrecognizedModelAlias

返回 UnrecognizedModelAlias 的新实例。



43
44
45
46
47
48
49
50
# File 'lib/mongoid/errors/unrecognized_model_alias.rb', line 43

def 初始化(model_alias)
  (
    compose_message(
      ' unrecognized_model_alias ',
      model_alias: model_alias.检查
    )
  )
end