例外: Mongoid::Errors::Unreg RegisteredClass

継承:
MongoidError
  • オブジェクト
すべて表示
定義:
lib/mongoid/errors/unreg Registered_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

Managerクラスは、多形の `unit` の関連付けを解決するときに ':org` という名前のカスタム リゾルバを使用するように構成されています。 ただし、`部門`クラスはそのリゾルバに登録されていません。 プログラムがマネージャーレコードを部門に関連付けようとすると、`:org` リゾルバで必要なキーを見つけることができず、この例外を除いて失敗します。

解決策は、'部門`クラスが`:org` リゾルバに正しく登録されていることを確認することです。

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

定数の概要

MongoidErrorから継承された定数

MongoidError::Base_KEY

インスタンス属性の概要

MongoidErrorから継承される属性

問題が発生した場合、解決が与えられたら次の状況が発生します。

インスタンス メソッドの概要を折りたたむ

MongoidErrorから継承されたメソッド

#compose_message

コンストラクターの詳細

#initialize(klass, resolver) ⇒ UnregisteredClass

Unreg RegisteredClass の新しいインスタンスを返します。



36
37
38
39
40
41
42
43
44
# ファイル 'lib/mongoid/errors/unregistred_Class.rb' は、36 行

デフォルト 初期化(klass, リゾルバ)
  スーパー(
    compound_message(
      'unregistered_class',
      klass: klass,
      リゾルバ: リゾルバ.検査する
    )
  )
end