モジュール: Mongoid::関連付け::Relatable
- 次のドキュメントに含まれます。
- 埋め込み::埋め込みIn 、埋め込み::MBedsMany 、埋め込み::埋め込みOne 、 Mongoid::関連付け::参照::BelongsTo 、 Mongoid::関連付け::参照: :関連付け::参照::HasOne
- 定義:
- lib/mongoid/関連付け/relatable.rb
Overview
このモジュールは、関連付けタイプ間で共有される動作を提供します。
定数の概要の削減
- SHARED_OPTIONS =
すべての関連付けタイプ間で共有されるオプション。
[ :Class_name, :inverse_ of, :validate, :extend ].freeze
- Primary_KEY_DEFAULT =
プライマリキーのデフォルト。
'_id'.freeze
インスタンス属性の概要を折りたたむ
-
#name ⇒ Symbol
readOnly
関連付けの名前。
-
#options ⇒ Hash
readOnly
この関連付けのオプション。
-
#parent_includes 詳しくは、 Array[String] の<String>
包含ツリー内のこれを超える関連付け。
インスタンス メソッドの概要を折りたたむ
-
# == (その他) =================================================================
この関連付けを別の関連付けと比較します。
-
#バインド可能かどうか(doc) = true | false
この関連付けを使用してオブジェクトをバインドしようとすると、エラーが発生するかどうか。
-
counter_cache_conum_name = string
カウンター キャッシュの列名を取得します。
-
#create_relation (所有者、ターゲット)=プロキシ
オーナーとターゲットを使用して関連付けプロキシ オブジェクトを作成します。
-
#破壊的か? = true | false
依存しているメソッドが破壊的かどうか。
-
#extension ⇒ Module
拡張機能を取得します。
-
# foreign_key_check = string
外部キーが変更されたかどうかを確認するメソッドの名前を取得します。
-
# foreign_key_setter = string
外部キー セッター メソッドの名前。
-
# get_colbacks (colback_type) = Array< Proc | Symbol>
指定された型のコールバックを取得します。
-
で_to? = true | false
この関連付けは embedded_in 関連付けか、 include_to 関連付けになりますか。
-
#初期化(_Class, name, opts = {{}, ブロック) = オブジェクト
関連付けを初期化します。
-
# の逆(その他の = nil) = シンボル
逆名を取得します。
-
# in 逆_関連付け
インバウンド の関連付けメタデータを取得します。
-
# in 逆_クラス = string (または: #inverse_klass)
この関連付けを所有するオブジェクトのクラス。
-
# inverse_Class_name = string
この関連付けを所有するオブジェクトのクラス名。
-
# inverse_setter (その他の= nil) string
逆セッター メソッドの名前。
-
#inverse_type ⇒ nil
逆の型を取得します。
-
#inverse_type_setter ⇒ String
多態的な 関連付けでドキュメントのタイプを設定するフィールドのセッターを取得します。
-
# の 逆 (その他の = nil)= 配列<Symbol>
逆名を取得します。
-
#キー= シンボル | string
この関連付けで外部キーが保存されている場合の、外部キー フィールド。
-
多数か= true | false
この関連付けは embedded_many 関連付けではありますか、has_many 関連付けではありますか。
-
# 1 = true | false
この関連付けは embedded_one 関連付けですか、または has_one 関連付けですか。
-
#パス(ドキュメント)= Mongoid::アトミック::Paths::Root
この関連付けのアトミック パス。
-
関係_クラス = string (#klas)
関連付けオブジェクトのクラス。
-
# retention_Class_name stringstring (または: #Class_name)
- クラス名(場合によっては修飾されていない場合、または
-
関連付けオブジェクトのプレフィックス付き。
-
#setter ⇒ String
関連するオブジェクトを割り当てるためのこのオブジェクトのセッターの名前。
-
# type_seter = string
型セッターを取得します。
-
検証する場合= true | false
関連するオブジェクトを検証するかどうか。
オプションに含まれるメソッド
は 、オート ビルド は ? 、 # autosave 、 #scaling_colbacks は? 、 #counter_ cached は? 、 # サイクル 、#依存関係、 # forceed_nil_inverse 、 インデックス付き 、 の 逆_ 、 順序 、 多形? 、#primary_key 、# store_as 、 #contact_field 、 #contactable? 、 #type
制約可能なに含まれるメソッド
インスタンス属性の詳細
番号名~シンボル(読み取り専用)
関連付けの名前。
33 34 35 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 33行 デフォルト name @name end |
オプション=ハッシュ(読み取り専用)
この関連付けのオプション。
38 39 40 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 38行 デフォルト @options end |
#parent_includes 詳しくは、 Array[String ] の<String>
包含ツリー内のこれを超える関連付け。
306 307 308 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 306行 デフォルト parent_includes @parent_includes end |
インスタンス メソッドの詳細
# == (その他) =================================================================
この関連付けを別の関連付けと比較します。
62 63 64 65 66 67 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 62行 デフォルト ==(その他) connection_Class_name == その他.connection_Class_name & & 逆_クラス名 == その他.逆_クラス名 & & name == その他.name & & == その他. end |
#バインド可能かどうか(doc) = true | false
この関連付けを使用してオブジェクトをバインドしようとすると、エラーが発生するかどうか。
93 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 93行 デフォルト バインド可能か(doc); false; end |
counter_cache_conum_name = string
カウンター キャッシュの列名を取得します。
270 271 272 273 274 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 270行 デフォルト counter_cache_count_name @counter_cache_conum_name ||= (@options[:counter_cache].is_a?(文字列) || @options[:counter_cache].is_a?(シンボル)) ? @options[:counter_cache] : " #{ inverse || inverse_Class_name .の復号化.アンダースコア.複数形} _count " end |
#create_relation (所有者、ターゲット)=プロキシ
オーナーとターゲットを使用して関連付けプロキシ オブジェクトを作成します。
256 257 258 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 256行 デフォルト create_relation(所有者, ターゲット) 関係.新着情報(所有者, ターゲット, 自己) end |
#破壊的か? = true | false
依存しているメソッドが破壊的かどうか。
263 264 265 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 263行 デフォルト 破壊的か? @destructive ||= !!(依存関係 & & (依存関係 == :delete_all || 依存関係 == :破棄)) end |
#extension ⇒ Module
拡張機能を取得します。
279 280 281 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 279行 デフォルト 拡張機能 @extection ||= @options[:extend] end |
# foreign_key_check = string
外部キーが変更されたかどうかを確認するメソッドの名前を取得します。
245 246 247 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 245行 デフォルト foreign_key_check @foreign_key_check ||= " " 場合 (stored_foreign_key? & & foreign_key) end |
# foreign_key_setter = string
外部キー セッター メソッドの名前。
215 216 217 218 219 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 215行 デフォルト foreign_key_setter 注: この関連付けが外部キーを保存しているかどうかは確認できません # HasOne と HasMany バインディングで foreign_key_setter を参照しました を参照してください @foreign_key_setter ||= " #{ foreign_key } = " 場合 foreign_key end |
# get_colbacks (colback_type) = Array< Proc | Symbol>
指定された型のコールバックを取得します。
75 76 77 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 75行 デフォルト get_colbacks(Callback_type) 配列([Callback_type]) end |
で_to? = true | false
この関連付けは embedded_in 関連付けか、 include_to 関連付けか?
333 334 335 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 333行 デフォルト in_to? [参照済み::BelongsTo, Embedded::EmbeddedIn].any? { |a| 自己.is_a?(a) } end |
#初期化(_Class, name, opts = {{}, ブロック) =オブジェクト
関連付けを初期化します。
46 47 48 49 50 51 52 53 54 55 56 57 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 46行 デフォルト 初期化(_Class, name, ops = {}, &ブロック) @所有者_クラス = _Class @name = name @options = ops @extection = nil @module_path = _Class.name ? _Class.name.分裂('::')[0..-2].join('::') : '' @module_path < '::' ただし、 @module_path.空の場合 create_exttention.(&ブロック) validate! end |
# の逆(その他の = nil) =シンボル
逆名を取得します。
286 287 288 289 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 286行 デフォルト 逆(その他 = nil) 候補者 = 逆(その他) 候補者.検出 { |c| c } 場合 候補者 end |
# in 逆_関連付け
インバウンド の関連付けメタデータを取得します。
118 119 120 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 118行 デフォルト 逆_関連付け(その他 = nil) (その他 || 関係_クラス).関係[逆(その他)] end |
# 逆_クラス = = string 別名 : inverse_klass
この関連付けを所有するオブジェクトのクラス。
185 186 187 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 185行 デフォルト 逆_クラス @所有者_クラス end |
# inverse_Class_name = string
この関連付けを所有するオブジェクトのクラス名。
178 179 180 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 178行 デフォルト 逆_クラス名 @inverse_Class_name ||= @所有者_クラス.name end |
# inverse_setter (その他の= nil) string
逆セッター メソッドの名前。
208 209 210 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 208行 デフォルト inverse_setter(その他 = nil) @inverse_setter ||= " #{の逆(他の) 。最初の} = " ただし、 逆(その他).blank? end |
#inverse_type ⇒ nil
逆の型を取得します。
125 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 125行 デフォルト inverse_type; end |
#inverse_type_setter ⇒ String
多態的な 関連付けでドキュメントのタイプを設定するフィールドのセッターを取得します。
235 236 237 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 235行 デフォルト inverse_type_setter @inverse_type_setter ||= " #{ inverse_type } = " 場合 inverse_type end |
# の 逆 (その他の = nil)= 配列<Symbol>
逆名を取得します。
101 102 103 104 105 106 107 108 109 110 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 101行 デフォルト 逆(その他 = nil) return [ 逆_の ] 場合 逆_の return [] 場合 @options.key?(:inverse_ of) & & !逆_の 場合 多態的か 多形_逆順(その他) else confirm_inverses(その他) end end |
#キー=シンボル | string
この関連付けで外部キーが保存されている場合の、外部キー フィールド。 それ以外の場合、プライマリキー。
194 195 196 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 194行 デフォルト キー stored_foreign_key? ? foreign_key : プライマリ_キー end |
多数か= true | false
この関連付けは embedded_many 関連付けか、has_many 関連付けですか。
318 319 320 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 318行 デフォルト 多いです [参照済み::HasMany, Embedded::embedded].any? { |a| 自己.is_a?(a) } end |
# 1 = true | false
この関連付けは embedded_one 関連付けか、has_one 関連付けかになりますか。
325 326 327 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 325行 デフォルト 1 つ? [参照済み::HasOne, Embedded::embeddedOne].any? { |a| 自己.is_a?(a) } end |
#パス(ドキュメント) = Mongoid::アトミック::Paths::Root
この関連付けのアトミック パス。
224 225 226 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 224行 デフォルト path(ドキュメント) 関係.path(ドキュメント) end |
関係_クラス = stringまたは klasとも呼ばれる
関連付けオブジェクトのクラス。
このメソッドは、ホスト ドキュメント クラスに対して解決された、 relation_class_name
に対応するクラス インスタンスを返します。
クラスが存在しない場合、このメソッドは NameError を発生させます。 これは、ターゲット クラスがまだ定義されていないために発生します。 ターゲット クラスはあるオブジェクトから別のオブジェクトに変更される可能性があり、多形関連付けでこのメソッドを呼び出すと通常 NameError で失敗するか、誤りが生じる結果が生じるため(クラスが次のことが発生した場合、明確に定義されたターゲット クラスがないことに注意してください。関連付け名と同じ名前で定義される必要がある場合)。
167 168 169 170 171 172 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 167行 デフォルト 関係_クラス @klass ||= begin cls_name = @options[:Class_name] || ActiveSupport::インジケーター.分類(name) restrict_name(逆_クラス, cls_name) end end |
# retention_Class_name = string と も呼ばれます : Class_name
このメソッドの戻り値は、戻り値が必ずしも完全修飾クラス名ではないため、2 つの関連付けが同じターゲット クラスを持つかどうかを判断するために使用しないでください。 クラスを比較するには、 relation_class
メソッドを使用して関連付けターゲットのクラス インスタンスを取得します。
- クラス名(場合によっては修飾されていない場合、または
-
関連付けのプレフィックス付き
オブジェクト。
このメソッドは、関連付け定義で使用されるクラス名を返します。 関連付け内で :Class_name オプションが指定されている場合、そのオプションの正確な値がここで返されます。 :Class_name オプションが指定されていない場合、クラスの名前は関連付け名から計算されますが、実際のクラスには解決されません。
このメソッドによって返されるクラス名は、対応するクラスがまだロードされていないため、または関連付けが存在しないクラスを完全に参照しているため、定義されたクラスに対応しない場合があります。 関連付けクラスを取得するには、 relation_class
メソッドを使用します。
148 149 150 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 148行 デフォルト connection_Class_name @Class_name ||= @options[:Class_name] || ActiveSupport::インジケーター.分類(name) end |
#setter ⇒ String
関連するオブジェクトを割り当てるためのこのオブジェクトのセッターの名前。
201 202 203 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 201行 デフォルト setter @setter ||= " #{ name } = " end |
# type_seter = string
:as オプションを取る多形データの関連付けにのみ関連します。
型セッターを取得します。
83 84 85 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 83行 デフォルト type_setter @type_setter ||= " #{ type } = " 場合 タイプ end |
検証する場合 = true | false
関連するオブジェクトを検証するかどうか。
295 296 297 298 299 300 301 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 295行 デフォルト validate? @validate ||= 場合 @options[:validate].nil? validation_default else !!@options[:validate] end end |