クラス: Mongoid::ModelResolver
Overview
弁別キーに基づいてモデル クラスを解決するためのデフォルトクラス。 キーを指定すると、対応する モデルクラスが返されます(存在する場合)。 デフォルトでは 、指定されたキーと一致する名前を持つクラスが検索されますが、追加のマッピングが提供される場合があります。
また、複数のリゾルバをインスタンス化したり、独自のリゾルバをインスタンス化したりすることもできます。これにより、異なるクラスのセットが独立した解決メカニズムを使用できます。
定数の概要の削減
- INインスタンス_ミューテックス =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
を作成するために使用されるミューテックスインスタンス。インスタンス` メソッド スレッドセーフ。
ミューテックス.新着情報
クラスメソッドの概要を折りたたむ
-
。インスタンス= Mongoid::ModelResolver
ModelResolver のデフォルトのインスタンスを返します。
-
。 register_resolver(リゾルバ、名前) = オブジェクト
指定されたリゾルバを指定された名前で登録します。
-
。リゾルバ( identity_or_object = :デフォルト)= Mongoid::ModelResolver::Interface
引数に対応するリゾルバインスタンスを返します。
-
。リゾルバ ~ ハッシュ < Symbol => Mongoid::ModelResolver::Interface>
登録されているリゾルバのマップを返します。
インスタンス メソッドの概要を折りたたむ
-
初期化 ~ モデルリゾルバ
コンストラクター
新しいModelResolverインスタンスをインスタンス化します。
-
# register (klas, *keys) = オブジェクト
指定されたモデルクラスを指定されたキーで登録します。
コンストラクターの詳細
クラスメソッドの詳細
。インスタンス= Mongoid::ModelResolver
ModelResolver のデフォルトのインスタンスを返します。
27 28 29 |
# ファイル 'lib/mongoid/model_resolver.rb' は、27 行 デフォルト インスタンス @instance ||= INインスタンス_ミューテックス.同期 { @instance ||= 新着情報 } end |
。 register_resolver(リゾルバ、名前) = オブジェクト
指定されたリゾルバを指定された名前で登録します。
68 69 70 71 |
# ファイル 'lib/mongoid/model_resolver.rb' は、68 行 デフォルト register_resolver(リゾルバ, name) 解決[name.to_sym] = リゾルバ 自己 end |
。リゾルバ( identity_or_object = :デフォルト)= Mongoid::ModelResolver::Interface
引数に対応するリゾルバインスタンスを返します。
52 53 54 55 56 57 58 59 60 61 62 |
# ファイル 'lib/mongoid/model_resolver.rb' は、52 行 デフォルト リゾルバ(identity_or_object = :default) ケース identity_or_object 次の場合: nil, false 次に nil 次の場合: true, :default 次に インスタンス 次の場合: 文字列, シンボル 解決.fetch(identity_or_object.to_sym) 行う |キー| 発生 Mongoid::Errors::UnrecognizedResolver, キー end else identity_or_object end end |
。リゾルバ ~ ハッシュ < Symbol => Mongoid::ModelResolver::Interface>
登録されているリゾルバのマップを返します。 デフォルトのリゾルバはここには含まれていません。
36 37 38 |
# ファイル 'lib/mongoid/model_resolver.rb' は、36 行 デフォルト 解決 @resolvers ||= {} end |
インスタンス メソッドの詳細
# register (klas, *keys) = オブジェクト
指定されたモデルクラスを指定されたキーで登録します。 指定されたキーに加えて、クラス名自体がクラスを識別するキーとして含まれます。 キーは優先順位順位の順に付与され、優先順位度が低いキーが最後に与えられます。 クラス名は明示的に指定されない場合、常に最低優先順位になります。
複数回呼び出された場合、新しいキーは古いキーよりも優先順位が高くなります。 すべての重複キーが削除されます。
90 91 92 93 94 95 96 97 98 99 100 101 |
# ファイル 'lib/mongoid/model_resolver.rb' は、90 行 デフォルト Register(klass, *キー) default_key = klass.name @model_to_keys[klass] = [ *キー, *@model_to_keys[klass], default_key ].一意 @key_to_model[default_key] = klass キー.各 行う |キー| @key_to_model[キー] = klass end 自己 end |