モジュール: Mongoid::Tlasable::DiscriminatorAssignment Private

定義:
lib/mongoid/trazerable.rb

Overview

このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。

さまざまな弁別子_*= メソッドの前に追加するために使用されるモジュール

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

インスタンス メソッドの詳細

# discriminator_key= (値) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

弁別子キーを設定します。

rust メトリクス/ABCSize

パラメーター:

  • 価値 ( string )

    設定する弁別子キー。

次の値が発生します。



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# ファイル 'lib/mongoid/traaverable.rb' 行135

デフォルト trigger_key=(価値)
  発生 Errors::InvalidDiscriminatorKeyTarget.新着情報(自己, スーパークラス) 場合 継承

  _mongoid_client_types

  場合 価値
    Mongoid::フィールド::バリデーター::Macro.validate_field_name(自己, 価値)
    価値 = 価値.to_s
    ::Mongoid::Traversable.__redefine(自己, '弁別子_キー ', 価値)
  else
    # 弁別子キーが nil に設定されている場合、クラスの定義を置き換えます
    弁別子キー リーダーの数(以前は Class_attribute によって提供された)
    # を使用して Mongoid に再委任します。
    クラス < 自己
      委任 :discriminator_key, から: ::Mongoid
    end
  end

  # この条件は、新しい弁別子キーが上書きするかどうかを確認します
  既存のフィールド 。
  # この条件では、クラスに子孫があるかどうかもチェックされます。次の条件があります:
  # ない場合は、弁別子キーは必要ありません。
  return 場合 フィールド.key?(弁別子_キー) || descendants.空の場合

  default_proc = -> { 自己.クラス.弁別子_値 }
  フィールド(弁別子_キー, デフォルト:  default_proc, type: 文字列)
end

# _値 = (値) ============================================string

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

弁別子キーを返します。

次の値を返します。

  • ( string )

    弁別子キー。



169
170
171
172
173
174
# ファイル 'lib/mongoid/traaverable.rb' 行169

デフォルト trigger_value==(価値)
  価値 ||= name
  _mongoid_client_types
  add_discriminator_mapping(価値)
  @discriminator_value = 価値
end