モジュール: 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 のサポートを削除したら、オプション ハッシュをキーワード引数として再実装できます。 App Services.ruby-lang.org/issues/{3 15753を参照してください

ビルドを実行します。

パラメーター:

  • klass クラス

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

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

    ドキュメント属性。

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

    使用するオプション。

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

  • :execute_colbacks true | false

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

次の値を返します。



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

デフォルト execution_Build(klass, 属性 = nil, options = {})
  属性 ||= {}
  dvalue = 属性[klass.弁別子_キー] || 属性[klass.弁別子_キー.to_sym]
  タイプ = klass.get_discriminator_mapping(dvalue)
  場合 タイプ
    タイプ.struct_document(属性, options)
  else
    klass.struct_document(属性, options)
  end
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を呼び出す役割を果たします。 埋め込み関連付けを含むオブジェクトグラフ全体が構築されるまで、コールバック実行を延期するには、このオプションを使用します。

次の値を返します。



234
235
236
237
238
239
# ファイル 'lib/mongoid/factory.rb' 行234

デフォルト 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. 条件に参照の関連付けがある場合(つまり、このドキュメントが別のドキュメントの関連付けとしてインスタンス化されている場合)、返されたドキュメントの逆の関連付けにも他のドキュメントが入力されます(存在する場合)。

例:

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

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

パラメーター:

  • klass クラス

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

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

    ドキュメント属性。

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

    任意基準オブジェクト。

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

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

次の値を返します。



212
213
214
# ファイル 'lib/mongoid/factory.rb' 行212

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