异常:Mongoid::Errors::UnregisteredClass

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

Overview

当 Mongoid 尝试查询用于多态关联中给定类的标识符,但该类之前尚未由用于查询的解析程序注册时,则触发该警报。

示例如下:

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

class Manager
include Mongoid::Document
belongs_to :unit, polymorphic: :org
end

经理类配置为在解析多态 unit 关联时使用名为 :org 的自定义解析程序。但是,Department 类未向该解析程序注册。当程序尝试将经理记录与部门关联时,它将无法在 :org 解析程序中找到所需的密钥,并且会因此异常而失败。

解决方案是确保 Department 类已正确注册到 :org 解析程序:

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

常量摘要

从MongoidError继承的常量

MongoidError::BASE_KEY

实例属性摘要

从MongoidError继承的属性

#问题、 #分辨率、 #summary

实例方法摘要折叠

从MongoidError继承的方法

#compose_message

构造函数详情

#initialize(klass, resolver) ⇒ UnregisteredClass

返回 UnregisteredClass 的新实例。



36
37
38
39
40
41
42
43
44
# File 'lib/mongoid/errors/unregistered_class.rb', line 36

def 初始化(klass, 解析器)
  超(
    compose_message(
      'unregistered_class',
      类: klass,
      解析程序: 解析器.检查
    )
  )
end