クラス: 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: リファクター、ビッグタイム。
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 25行を デフォルト 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 互換オブジェクトに展開します。
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 64行を デフォルト 量用(オブジェクト) 場合 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
このフィールドは外部キーか?
52 53 54 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 52行を デフォルト foreign_key? true end |
#遅延= true | false
このフィールドは遅延デフォルト評価を行いますか。
84 85 86 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 84行を デフォルト lazy? タイプ.サイズ変更可能か end |
# mongoize (object) =オブジェクト
オブジェクトをmongo double 値に MongoDB 化します。
96 97 98 99 100 101 102 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 96行を デフォルト mongoize(オブジェクト) 場合 タイプ.サイズ変更可能か || object_id_field mongoize_foreign_key(オブジェクト) else .mongoize(オブジェクト) end end |
オブジェクト_id_field = true | false
フィールドは BSON::ObjectId かどうか
110 111 112 113 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 110行を デフォルト object_id_field @object_id_field ||= 関連付け.多態的か ? true : 関連付け.klass.using_object_ids? end |
サイズは変更可能ですか? = true | false
配列の場合は true を返し、配列でない場合は false を返します。
121 122 123 |
# ファイル 'lib/mongoid/fields/foreign_key.rb' は、 121行を デフォルト サイズ変更可能か タイプ.サイズ変更可能か end |