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

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

Overview

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

定数の概要の削減

SHARED_OPTIONS =

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

次の値を返します。

  • 配列<Symbol>

    共有オプション。

[
  :Class_name,
  :inverse_ of,
  :validate,
  :extend
].freeze
Primary_KEY_DEFAULT =

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

次の値を返します。

  • ( string )

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

'_id'.freeze

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

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

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

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

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

#convert_to_foreign_key

インスタンス属性の詳細

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

関連付けの名前。

次の値を返します。

  • シンボル

    関連付けの名前。



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

デフォルト name
  @name
end

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

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

次の値を返します。

  • ハッシュ

    オプション。



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

デフォルト options
  @options
end

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

#バインド可能かどうか(doc) = true | false

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

パラメーター:

次の値を返します。

  • true | false

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



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

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

counter_cache_conum_name = string

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

次の値を返します。

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

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

パラメーター:

  • 所有者 ドキュメント

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

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

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

次の値を返します。



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

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

#破壊的か? = true | false

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

次の値を返します。

  • true | false

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



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

デフォルト 破壊的か?
  @destructive ||= !!(依存関係 & & (依存関係 == :delete_all || 依存関係 == :破棄))
end

#extensionModule

拡張機能を取得します。

次の値を返します。

  • モジュール

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



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

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

# foreign_key_check = string

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

例:

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

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

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

次の値を返します。

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

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

パラメーター:

  • Callback_type シンボル

    コールバック型の型。

次の値を返します。

  • Array <Proc | Symbol>

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



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

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

_to? = true | false

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

次の値を返します。

  • true | false

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



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

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

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

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

パラメーター:

  • _Class クラス

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

  • name シンボル

    関連付けの名前。

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

    関連付けオプション。

  • ブロック ブロック

    任意 ブロック。



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

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

パラメーター:

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

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

次の値を返します。



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

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

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

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

次の値を返します。

  • ( string )

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



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

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

# inverse_Class_name = string

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

次の値を返します。

  • ( string )

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



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

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

# inverse_setter (その他の= nil) string

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

次の値を返します。

  • ( string )

    逆セッターの名前。



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

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

#inverse_typenil

逆の型を取得します。

次の値を返します。

  • (nil)

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



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

デフォルト inverse_type; end

#inverse_type_setterString

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

例:

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

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

逆名を取得します。

パラメーター:

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

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

次の値を返します。

  • シンボル | string

    プライマリキー。



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

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

多数か= true | false

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

次の値を返します。

  • true | false

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



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

次の値を返します。

  • true | false

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



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

次の値を返します。

  • ( string )

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



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

次の値を返します。

  • ( string )

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



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

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

#setterString

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

次の値を返します。

  • ( string )

    セッター名。



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

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

# type_seter = string

注:

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

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

次の値を返します。

  • ( string )

    型設定メソッド。



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

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

検証する場合 = true | false

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

次の値を返します。

  • 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