モジュール: Mongoid::関連付け::Relatable

次のことが含まれます。
制約可能オプション
次のドキュメントに含まれます。
埋め込み::埋め込みIn 、埋め込み::MBedsMany埋め込み::埋め込みOneMongoid::関連付け::参照::BelongsToMongoid::関連付け::参照: :関連付け::参照::HasOne
定義:
lib/mongoid/関連付け/relatable.rb

Overview

このモジュールは、関連付けタイプ間で共有される動作を提供します。

定数の概要の削減

SHARED_OPTIONS =

すべての関連付けタイプ間で共有されるオプション。

次の値を返します。

  • 配列<Symbol>

    共有オプション。

%i[
  Class_name
  逆_の
  validate
  拡張
].freeze
Primary_KEY_DEFAULT =

プライマリキーのデフォルト。

次の値を返します。

  • ( string )

    プライマリキー フィールドのデフォルト。

'_id'

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

オプションに含まれるメソッド

、オート ビルド は ? 、 # autosave 、 #scaling_colbacks は? #counter_ cached は? 、 # サイクル 、#依存関係、 # forceed_nil_inverse 、 インデックス付き の 逆_ 、 順序 、 多形? 、#primary_key 、# store_as #contact_field 、 #contactable? 、 #type

制約可能なに含まれるメソッド

#convert_to_foreign_key

インスタンス属性の詳細

番号シンボル(読み取り専用)

関連付けの名前。

次の値を返します。

  • シンボル

    関連付けの名前。



31
32
33
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 31行

デフォルト name
  @name
end

オプション=ハッシュ(読み取り専用)

この関連付けのオプション。

次の値を返します。

  • ハッシュ

    オプション。



36
37
38
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 36行

デフォルト options
  @options
end

#所有者_クラスクラス (読み取り専用)

この関連付けを所有するクラス。

次の値を返します。

  • クラス

    所有者クラス。



41
42
43
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 41行

デフォルト 所有者_クラス
  @所有者_クラス
end

#parent_includes 詳しくは、 Array[String ] の<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 & &
    options == その他.options
end

# バインド可能かどうか(_doc) ⇒ true | false

この関連付けを使用してオブジェクトをバインドしようとすると、エラーが発生するかどうか。

パラメーター:

次の値を返します。

  • true | false

    ドキュメントをバインドできるかどうか。



96
97
98
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 96行

デフォルト バインド可能か(_doc)
  false
end

counter_cache_conum_name = string

カウンター キャッシュの列名を取得します。

次の値を返します。

  • ( 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 (所有者、ターゲット)=プロキシ

オーナーとターゲットを使用して関連付けプロキシ オブジェクトを作成します。

パラメーター:

  • 所有者 ドキュメント

    この関連付けがハングするドキュメント。

  • ターゲット (Document | Array<Document>)

    関連付けのターゲット(親)。

次の値を返します。



261
262
263
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 261行

デフォルト create_relation(所有者, ターゲット)
  関係.新着情報(所有者, ターゲット, 自己)
end

#破壊的か? = true | false

依存しているメソッドが破壊的かどうか。

次の値を返します。

  • true | false

    依存しているメソッドが破壊的な場合。



268
269
270
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 268行

デフォルト 破壊的か?
  @destructive ||= !!(依存関係 & & %i[delete_all 破棄する].include?(依存関係))
end

#extensionModule

拡張機能を取得します。

次の値を返します。

  • モジュール

    拡張モジュール(定義されている場合)。



287
288
289
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 287行

デフォルト 拡張機能
  @extection ||= @options[:extend]
end

# foreign_key_check = string

外部キーが変更されたかどうかを確認するメソッドの名前を取得します。

例:

外部キー チェック メソッドを取得します。

association.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

外部キー セッター メソッドの名前。

次の値を返します。

  • ( 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>

指定された型のコールバックを取得します。

パラメーター:

  • Callback_type シンボル

    コールバック型の型。

次の値を返します。

  • Array <Proc | Symbol>

    コールバック(メソッド名または Pros)のリスト。



78
79
80
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 78行

デフォルト get_colbacks(Callback_type)
  配列(options[Callback_type])
end

_to? = true | false

この関連付けは embedded_in 関連付けか、 include_to 関連付けか?

次の値を返します。

  • true | false

    embedded_in または preserve_to 関連付けである場合は true、そうでない場合は false です。



341
342
343
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 341行

デフォルト in_to?
  [ 参照済み::BelongsTo, Embedded::EmbeddedIn ].any? { |a| is_a?(a) }
end

#初期化(_Class, name, opts = {{}, ブロック) =オブジェクト

関連付けを初期化します。

パラメーター:

  • _Class クラス

    この関連付けを所有するモデルの クラス。

  • name シンボル

    関連付けの名前。

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

    関連付けオプション。

  • ブロック ブロック

    任意 ブロック。



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 逆_関連付け

インバウンドの関連付けメタデータを取得します。

パラメーター:

  • その他 オブジェクト (デフォルトはnil

    逆を決定するときに使用する他のモデル クラスまたはモデル オブジェクト。

次の値を返します。



123
124
125
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 123行

デフォルト 逆_関連付け(その他 = nil)
  (その他 || 関係_クラス).関係[(その他)]
end

# 逆_クラス = = string 別名 : inverse_klass

この関連付けを所有するオブジェクトのクラス。

次の値を返します。

  • ( string )

    所有するオブジェクトのクラス。



190
191
192
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 190行

デフォルト 逆_クラス
  @所有者_クラス
end

# inverse_Class_name = string

この関連付けを所有するオブジェクトのクラス名。

次の値を返します。

  • ( string )

    所有するオブジェクトのクラス名。



183
184
185
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 183行

デフォルト 逆_クラス名
  @inverse_Class_name ||= @所有者_クラス.name
end

# inverse_setter (その他の= nil) string

逆セッター メソッドの名前。

次の値を返します。

  • ( string )

    逆セッターの名前。



213
214
215
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 213行

デフォルト inverse_setter(その他 = nil)
  @inverse_setter ||= " #{他の 最初の} = " ただし、 (その他).blank?
end

#inverse_typenil

逆の型を取得します。

次の値を返します。

  • (nil)

    関連付けのデフォルトは nil です。



130
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 130行

デフォルト inverse_type; end

#inverse_type_setterString

多態的な 関連付けでドキュメントのタイプを設定するフィールドのセッターを取得します。

例:

逆型セッターを取得します。

association.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>

逆名を取得します。

パラメーター:

  • その他 オブジェクト (デフォルトは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

この関連付けで外部キーが保存されている場合の、外部キー フィールド。 それ以外の場合、プライマリキー。

次の値を返します。

  • シンボル | string

    プライマリキー。



199
200
201
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 199行

デフォルト キー
  stored_foreign_key? ? foreign_key : プライマリ_キー
end

多数か= true | false

この関連付けは embedded_many 関連付けか、has_many 関連付けですか。

次の値を返します。

  • true | false

    *_many 関連付けである場合は true、そうでない場合は false です。



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 関連付けかになりますか。

次の値を返します。

  • true | false

    *_one 関連付けである場合は true、そうでない場合は false です。



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 で失敗するか、誤りが生じる結果が生じるため(クラスが次のことが発生した場合、明確に定義されたターゲット クラスがないことに注意してください。関連付け名と同じ名前で定義される必要がある場合)。

次の値を返します。

  • ( string )

    関連付けオブジェクトのクラス。



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メソッドを使用します。

次の値を返します。

  • ( string )

    関連付けオブジェクトのクラス名。



153
154
155
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 153行

デフォルト connection_Class_name
  @Class_name ||= @options[:Class_name] || ActiveSupport::インジケーター.分類(name)
end

#setterString

関連するオブジェクトを割り当てるためのこのオブジェクトのセッターの名前。

次の値を返します。

  • ( string )

    セッター名。



206
207
208
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 206行

デフォルト setter
  @setter ||= " #{ name } = "
end

# type_seter = string

注:

:as オプションを取る多形データの関連付けにのみ関連します。

型セッターを取得します。

次の値を返します。

  • ( string )

    型設定メソッド。



86
87
88
# ファイル 'lib/mongoid/as associated/relatable.rb' は、 86行

デフォルト type_setter
  @type_setter ||= " #{ type } = " 場合 タイプ
end

検証する場合 = true | false

関連するオブジェクトを検証するかどうか。

次の値を返します。

  • 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