モジュール: Mongoid::Factory

次による拡張機能。
工場
次のドキュメントに含まれます。
工場
定義:
lib/mongoid/factory.rb

Overview

データベースから取得されたドキュメントをインスタンス化します。

名前空間で定義済み

クラス: インスタンスエーター

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

インスタンス メソッドの詳細

#build(klass, attributes = nil) ⇒ Document

指定された属性から新しいDocumentを構築します。

このメソッドは、属性に klas の弁別子キーが含まれている場合は、klas または klas の子孫をインスタンス化します。

属性に弁別子キー(デフォルトは _type)が含まれ、かつ弁別子の値が klas の子孫に対応していない場合、このメソッドは klas のインスタンスを作成します。

例:

ドキュメントを構築します。

Mongoid::Factory.build(Person, { "name" => "Durran" })

パラメーター:

  • klass クラス

    _type が存在しない場合にインスタンス化するクラス。

  • 属性 ハッシュ (デフォルトはnil

    ドキュメント属性。

  • options ハッシュ

    カスタマイズ可能なオプションのセット

次の値を返します。



154
155
156
# ファイル 'lib/mongoid/factory.rb' 行154

デフォルト 構築(klass, 属性 = nil)
  execution_Build(klass, 属性)
end

の実行_ビルド( klas 、属性 = nil、オプション = {}) =ドキュメント

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

注:

Ruby 2.x のバグにより、オプション ハッシュがキーワード引数にならないようになります。Ruby 2.x のサポートを削除したら、オプション ハッシュをキーワード引数として再実装できます。https://bugs.ruby-lang.org/issues/15753 を参照してください

ビルドを実行します。

パラメーター:

  • klass クラス

    _type が存在しない場合にインスタンス化するクラス。

  • 属性 ハッシュ (デフォルトはnil

    ドキュメント属性。

  • options ハッシュ (デフォルトは{}です)

    使用するオプション。

オプション ハッシュ( options ):

  • :execute_colbacks true | false

    コールバックを実行するかどうかを指定するフラグ。

次の値を返します。



175
176
177
178
179
180
# ファイル 'lib/mongoid/factory.rb' 行175

デフォルト execution_Build(klass, 属性 = nil, options = {})
  属性 ||= {}
  dvalue = 属性[klass.弁別子_キー] || 属性[klass.弁別子_キー.to_sym]
  タイプ = klass.get_discriminator_mapping(dvalue) || klass
  タイプ.struct_document(属性, options)
end

#execute_from_dbklas 、Atlas、Atlas

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

from_db から実行します。

パラメーター:

  • klass クラス

    _type が存在しない場合にインスタンス化するクラス。

  • 属性 ハッシュ (デフォルトはnil

    ドキュメント属性。

  • 条件 基準 (デフォルトはnil

    任意基準オブジェクト。

  • scheduled_fields ハッシュ (デフォルトはnil

    # のみ を介して検索されたフィールド。 [選択した_フィールド] が指定されている場合、それにリストされていないフィールドは返されるドキュメントでアクセスできなくなります。

  • execution_colbacks true | false (デフォルトはRed.execute_colbacks?

    このメソッドでコールバックを呼び出すかどうか。 true の場合、コールバックは通常どおり呼び出されます。 false の場合、コールバックはpending_callbacksリストに保存され、呼び出し元は後でrun_pending_callbacksを呼び出す役割を果たします。 埋め込み関連付けを含むオブジェクトグラフ全体が構築されるまで、コールバック実行を延期するには、このオプションを使用します。

次の値を返します。



230
231
232
233
234
235
# ファイル 'lib/mongoid/factory.rb' 行230

デフォルト execute_from_db(klass, 属性 = nil, 条件 = nil,
                    scheduled_fields = nil,
                    execution_colbacks: スレッド.execution_colbacks?)
  インスタンスエーター.新着情報(klass, 属性, 条件, scheduled_fields)
              .インスタンス(execution_colbacks: execution_colbacks)
end

#from_db(klass, attributes = nil, criteria = nil, selected_fields = nil) ⇒ Document

データベースから読み込まれた指定された属性から新しいDocumentを構築します。

属性に弁別子キー(デフォルトは _type)が含まれており、 かつ 、弁別子の値が klas の子孫に対応していない場合、このメソッドは UnknownModel エラーを発生させます。

基準オブジェクトが指定された場合、そのオブジェクトは次の 2 つの方法で使用されます。

  1. 条件に のみ 経由で指定されたフィールドのリストがある場合、返されるドキュメントにはそれらのフィールドのみが入力されます。
  2. 条件に参照の関連付けがある場合(つまり、このdocumentが別のdocumentの関連付けとしてインスタンス化されている場合)、返されたdocumentの逆の関連付けにも他のdocumentが入力されます(存在する場合)。

例:

ドキュメントを構築します。

Mongoid::Factory.from_db(Person, { "name" => "Durran" })

パラメーター:

  • klass クラス

    _type が存在しない場合にインスタンス化するクラス。

  • 属性 ハッシュ (デフォルトはnil

    ドキュメント属性。

  • 条件 基準 (デフォルトはnil

    任意基準オブジェクト。

  • scheduled_fields ハッシュ (デフォルトはnil

    # のみ を介して検索されたフィールド。 [選択した_フィールド] が指定されている場合、それにリストされていないフィールドは返されるドキュメントでアクセスできなくなります。

次の値を返します。



208
209
210
# ファイル 'lib/mongoid/factory.rb' 行208

デフォルト from_db(klass, 属性 = nil, 条件 = nil, scheduled_fields = nil)
  execute_from_db(klass, 属性, 条件, scheduled_fields)
end