例外: Mongoid::Errors::Unreg RegisteredClass
- 継承:
-
MongoidError
- オブジェクト
- 標準エラー
- MongoidError
- Mongoid::Errors::Unreg RegisteredClass
- 定義:
- 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から継承される属性
問題が発生した場合、解決策が与えられたら次の状況が発生します。
インスタンス メソッドの概要を折りたたむ
-
#initialize(klass, resolver) ⇒ UnregisteredClass
コンストラクター
Unreg RegisteredClass の新しいインスタンス。
MongoidErrorから継承されたメソッド
コンストラクターの詳細
#initialize(klass, resolver) ⇒ UnregisteredClass
Unreg RegisteredClass の新しいインスタンスを返します。
36 37 38 39 40 41 42 43 44 |
# ファイル 'lib/mongoid/errors/unregistred_Class.rb' は、36 行 デフォルト 初期化(klass, リゾルバ) スーパー( ( 'unregistered_class', klass: klass, リゾルバ: リゾルバ.検査する ) ) end |