クラス: Mongoid::Fields::ForeignKey
Overview
別のドキュメントの ID を参照する外部キーを保存する BSON ドキュメント フィールド定義を表します。 関連付け動作に使用されます。
インスタンス属性の概要
標準から継承された属性
#default_val 、 # labels 、 #name 、 #options
インスタンス メソッドの概要を折りたたむ
-
#add_atomic_changes (document, name, key, Mods, new_elements, old_elements) = オブジェクト
このタイプのサイズ変更可能なフィールドにアトミックな変更を追加します。
-
# accumulate (Object) = オブジェクト
オブジェクトを ID 互換オブジェクトに展開します。
-
は、 foreign_key をサポートしていますか。 = true | false
このフィールドは外部キーか?
-
#遅延= true | false
このフィールドは遅延デフォルト評価を行いますか。
-
# mongoize (object) = オブジェクト
オブジェクトをmongo double 値に MongoDB 化します。
-
オブジェクト_id_field = true | false
フィールドは BSON::ObjectId ですか。
-
サイズは変更可能ですか? = true | false
配列の場合は true を返し、配列でない場合は false を返します。
標準から継承されたメソッド
、 、 、 、 、 、 、 、 、 、 #localizedか? 、 #pre_processed? 、 #type
コンストラクターの詳細
このクラスは、 Mongoid::Fields::standardからコンストラクターを継承します。
インスタンス メソッドの詳細
#add_atomic_changes (document, name, key, Mods, new_elements, old_elements) =オブジェクト
このタイプのサイズ変更可能なフィールドにアトミックな変更を追加します。
@todo: リファクター、ビッグタイム。
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 22行を デフォルト add_aごとの変更(ドキュメント, name, キー, 修飾子, new_Elements, old_elements) old = old_elements || [] 新着情報 = new_Elements || [] 場合 新着情報.Length > old.Length 場合 新着情報.最初に(old.Length) == old ドキュメント.atomic_array_add_to_sets[キー] = 新着情報.drop(old.Length) else 修飾子[キー] = ドキュメント.属性[name] end elsif 新着情報.Length < old.Length プル = old - 新着情報 場合 新着情報 == old - プル ドキュメント.アトミック_array_pulls[キー] = プル else 修飾子[キー] = ドキュメント.属性[name] end elsif 新着情報 != old 修飾子[キー] = ドキュメント.属性[name] end end |
# accumulate ( Object ) = オブジェクト
オブジェクトを ID 互換オブジェクトに展開します。
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 61行を デフォルト 量用(オブジェクト) 場合 object_id_field || オブジェクト.is_a?(ドキュメント) 場合 関連付け.多態的か 関連付け.convert_to_foreign_key(オブジェクト) elsif オブジェクト.is_a?(ドキュメント) & & オブジェクト.respond_to?(関連付け.プライマリ_キー) プライマリ_キー_フィールド.量用(オブジェクト.送信(関連付け.プライマリ_キー)) else オブジェクト._v_object_id__ end else .量用(オブジェクト) end end |
は、 foreign_key をサポートしていますか。 = true | false
このフィールドは外部キーか?
49 50 51 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 49行を デフォルト foreign_key? true end |
#遅延= true | false
このフィールドは遅延デフォルト評価を行いますか。
81 82 83 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 81行を デフォルト lazy? タイプ.サイズ変更可能か end |
# mongoize (object) =オブジェクト
オブジェクトをmongo double 値に MongoDB 化します。
93 94 95 96 97 98 99 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 93行を デフォルト mongoize(オブジェクト) 場合 タイプ.サイズ変更可能か || object_id_field mongoize_foreign_key(オブジェクト) else .mongoize(オブジェクト) end end |
オブジェクト_id_field = true | false
フィールドは BSON::ObjectId かどうか
107 108 109 110 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 107行を デフォルト object_id_field @object_id_field ||= 関連付け.多態的か || 関連付け.klass.using_object_ids? end |
サイズは変更可能ですか? = true | false
配列の場合は true を返し、配列でない場合は false を返します。
118 119 120 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 118行を デフォルト サイズ変更可能か タイプ.サイズ変更可能か end |