モジュール: Mongoid::関連付け::Relatable
- 次のドキュメントに含まれます。
- 埋め込み::埋め込みIn 、埋め込み::MBedsMany 、埋め込み::埋め込みOne 、 Mongoid::関連付け::参照::BelongsTo 、 Mongoid::関連付け::参照: :関連付け::参照::HasOne
- 定義:
- lib/mongoid/関連付け/relatable.rb
Overview
このモジュールは、関連付けタイプ間で共有される動作を提供します。
定数の概要の削減
- SHARED_OPTIONS =
すべての関連付けタイプ間で共有されるオプション。
%i[ Class_name 逆_の validate 拡張 ].freeze
- Primary_KEY_DEFAULT =
プライマリキーのデフォルト。
'_id'
インスタンス属性の概要を折りたたむ
-
#name ⇒ Symbol
readOnly
関連付けの名前。
-
#options ⇒ Hash
readOnly
この関連付けのオプション。
-
#所有者_クラス ~ クラス
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
制約可能なに含まれるメソッド
インスタンス属性の詳細
番号名~シンボル(読み取り専用)
関連付けの名前。
31 32 33 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 31行 デフォルト name @name end |
オプション=ハッシュ(読み取り専用)
この関連付けのオプション。
36 37 38 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 36行 デフォルト @options end |
#所有者_クラス ~ クラス (読み取り専用)
この関連付けを所有するクラス。
41 42 43 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 41行 デフォルト 所有者_クラス @所有者_クラス end |
#parent_includes 詳しくは、 Array[String ] の<String>
包含ツリー内のこれを超える関連付け。
319 320 321 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 319行 デフォルト parent_includes @parent_includes ||= [] end |
インスタンス メソッドの詳細
# == (その他) =================================================================
この関連付けを別の関連付けと比較します。
65 66 67 68 69 70 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 65行 デフォルト ==(その他) connection_Class_name == その他.connection_Class_name & & 逆_クラス名 == その他.逆_クラス名 & & name == その他.name & & == その他. end |
# バインド可能かどうか(_doc) ⇒ true | false
この関連付けを使用してオブジェクトをバインドしようとすると、エラーが発生するかどうか。
96 97 98 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 96行 デフォルト バインド可能か(_doc) false end |
counter_cache_conum_name = string
カウンター キャッシュの列名を取得します。
275 276 277 278 279 280 281 282 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 275行 デフォルト counter_cache_count_name @counter_cache_conum_name ||= 場合 @options[:counter_cache].is_a?(文字列) || @options[:counter_cache].is_a?(シンボル) @options[:counter_cache] else " #{ inverse || inverse_Class_name .の復号化.アンダースコア.複数形} _count " end end |
#create_relation (所有者、ターゲット)=プロキシ
オーナーとターゲットを使用して関連付けプロキシ オブジェクトを作成します。
261 262 263 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 261行 デフォルト create_relation(所有者, ターゲット) 関係.新着情報(所有者, ターゲット, 自己) end |
#破壊的か? = true | false
依存しているメソッドが破壊的かどうか。
268 269 270 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 268行 デフォルト 破壊的か? @destructive ||= !!(依存関係 & & %i[delete_all 破棄する].include?(依存関係)) end |
#extension ⇒ Module
拡張機能を取得します。
287 288 289 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 287行 デフォルト 拡張機能 @extection ||= @options[:extend] end |
# foreign_key_check = string
外部キーが変更されたかどうかを確認するメソッドの名前を取得します。
250 251 252 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 250行 デフォルト foreign_key_check @foreign_key_check ||= " " 場合 stored_foreign_key? & & foreign_key end |
# foreign_key_setter = string
外部キー セッター メソッドの名前。
220 221 222 223 224 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 220行 デフォルト foreign_key_setter 注: この関連付けが外部キーを保存しているかどうかは確認できません # HasOne と HasMany バインディングで foreign_key_setter を参照しました を参照してください @foreign_key_setter ||= " #{ foreign_key } = " 場合 foreign_key end |
# get_colbacks (colback_type) = Array< Proc | Symbol>
指定された型のコールバックを取得します。
78 79 80 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 78行 デフォルト get_colbacks(Callback_type) 配列([Callback_type]) end |
で_to? = true | false
この関連付けは embedded_in 関連付けか、 include_to 関連付けか?
341 342 343 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 341行 デフォルト in_to? [ 参照済み::BelongsTo, Embedded::EmbeddedIn ].any? { |a| is_a?(a) } end |
#初期化(_Class, name, opts = {{}, ブロック) =オブジェクト
関連付けを初期化します。
49 50 51 52 53 54 55 56 57 58 59 60 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 49行 デフォルト 初期化(_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) =シンボル
逆名を取得します。
294 295 296 297 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 294行 デフォルト 逆(その他 = nil) 候補者 = 逆(その他) 候補者.検出 { |c| c } 場合 候補者 end |
# in 逆_関連付け
インバウンドの関連付けメタデータを取得します。
123 124 125 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 123行 デフォルト 逆_関連付け(その他 = nil) (その他 || 関係_クラス).関係[逆(その他)] end |
# 逆_クラス = = string 別名 : inverse_klass
この関連付けを所有するオブジェクトのクラス。
190 191 192 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 190行 デフォルト 逆_クラス @所有者_クラス end |
# inverse_Class_name = string
この関連付けを所有するオブジェクトのクラス名。
183 184 185 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 183行 デフォルト 逆_クラス名 @inverse_Class_name ||= @所有者_クラス.name end |
# inverse_setter (その他の= nil) string
逆セッター メソッドの名前。
213 214 215 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 213行 デフォルト inverse_setter(その他 = nil) @inverse_setter ||= " #{の逆(他の) 。最初の} = " ただし、 逆(その他).blank? end |
#inverse_type ⇒ nil
逆の型を取得します。
130 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 130行 デフォルト inverse_type; end |
#inverse_type_setter ⇒ String
多態的な 関連付けでドキュメントのタイプを設定するフィールドのセッターを取得します。
240 241 242 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 240行 デフォルト inverse_type_setter @inverse_type_setter ||= " #{ inverse_type } = " 場合 inverse_type end |
# の 逆 (その他の = nil)= 配列<Symbol>
逆名を取得します。
106 107 108 109 110 111 112 113 114 115 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 106行 デフォルト 逆(その他 = nil) return [ 逆_の ] 場合 逆_の return [] 場合 @options.key?(:inverse_ of) & & !逆_の 場合 多態的か 多形_逆順(その他) else confirm_inverses(その他) end end |
#キー=シンボル | string
この関連付けで外部キーが保存されている場合の、外部キー フィールド。 それ以外の場合、プライマリキー。
199 200 201 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 199行 デフォルト キー stored_foreign_key? ? foreign_key : プライマリ_キー end |
多数か= true | false
この関連付けは embedded_many 関連付けか、has_many 関連付けですか。
326 327 328 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 326行 デフォルト 多いです [ 参照済み::HasMany, Embedded::embedded ].any? { |a| is_a?(a) } end |
# 1 = true | false
この関連付けは embedded_one 関連付けか、has_one 関連付けかになりますか。
333 334 335 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 333行 デフォルト 1 つ? [ 参照済み::HasOne, Embedded::embeddedOne ].any? { |a| is_a?(a) } end |
#パス(ドキュメント) = Mongoid::アトミック::Paths::Root
この関連付けのアトミック パス。
229 230 231 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 229行 デフォルト path(ドキュメント) 関係.path(ドキュメント) end |
関係_クラス = stringまたは klasとも呼ばれる
関連付けオブジェクトのクラス。
このメソッドは、ホスト ドキュメント クラスに対して解決された、 relation_class_nameに対応するクラス インスタンスを返します。
クラスが存在しない場合、このメソッドは NameError を発生させます。 これは、ターゲット クラスがまだ定義されていないために発生します。 ターゲット クラスはあるオブジェクトから別のオブジェクトに変更される可能性があり、多形関連付けでこのメソッドを呼び出すと通常 NameError で失敗するか、誤りが生じる結果が生じるため(クラスが次のことが発生した場合、明確に定義されたターゲット クラスがないことに注意してください。関連付け名と同じ名前で定義される必要がある場合)。
172 173 174 175 176 177 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 172行 デフォルト 関係_クラス @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メソッドを使用します。
153 154 155 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 153行 デフォルト connection_Class_name @Class_name ||= @options[:Class_name] || ActiveSupport::インジケーター.分類(name) end |
#setter ⇒ String
関連するオブジェクトを割り当てるためのこのオブジェクトのセッターの名前。
206 207 208 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 206行 デフォルト setter @setter ||= " #{ name } = " end |
# type_seter = string
:as オプションを取る多形データの関連付けにのみ関連します。
型セッターを取得します。
86 87 88 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 86行 デフォルト type_setter @type_setter ||= " #{ type } = " 場合 タイプ end |
検証する場合 = true | false
関連するオブジェクトを検証するかどうか。
303 304 305 306 307 308 309 |
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 303行 デフォルト validate? @validate ||= 場合 @options[:validate].nil? validation_default else !!@options[:validate] end end |