异常: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