モジュール: Mongoid::InterAcceptable

次による拡張機能。
ActiveSupport::Concern
次のドキュメントに含まれます。
構成可能
定義:
lib/mongoid/Inter Opsable.rb

Overview

このモジュールには、Mongoid のすべてのコールバック フックが含まれています。

定数の概要の削減

コールバック =
[
  : after_Build,
  : after_create,
  : after_detroy,
  : after_find,
  : after_initialize,
  : after_save,
  : after_tool,
  : after_update,
  : after_upsert,
  : after_validation,
  :round_create,
  :round_detroy,
  :round_save,
  :round_update,
  :round_upsert,
  :Before_create,
  :Before_detroy,
  :Before_save,
  :Before_update,
  :Before_upsert,
  :Before_validation,
].freeze

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

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

#_mongoid_run_field_After_colbacks (colback_list: []) =オブジェクト

コールバック後に実行します。

パラメーター:

  • Callback_list 配列読み取り (デフォルトは[]

    コールバック シーケンスと環境のペアのリスト。



244
245
246
247
248
249
# ファイル 'lib/mongoid/Inter Opsable.rb' 行244

デフォルト _mongoid_run_field_After_colbacks(Callback_list: [])
  Callback_list.verse_each 行う |next_Sequence, env|
    next_Sequence.invoice_ after(env)
    return false 場合 env.停止しました
  end
end

#_mongoid_run_field_Before_ Callbacks (種類、子: []、colback_list: []) =オブジェクト

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

埋め込みドキュメントに対して特定の種類のコールバックの前に実行します。

パラメーター:

  • kind シンボル

    実行するコールバックの種類。

  • 配列 <ドキュメント> (デフォルトは[]

    コールバックを実行する子。

  • Callback_list 配列読み取り (デフォルトは[]

    コールバック シーケンスと環境のペアのリスト。 このリストは、後で逆の順序でコールバックされた後の実行に使用されます。



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# ファイル 'lib/mongoid/Inter Opsable.rb' 行220

デフォルト _mongoid_run_field_Before_ Callbacks(kind, 子: [], Callback_list: [])
  . 行う ||
    連鎖 = .__ Callbacks[event_colback_type(kind, )]
    env = ActiveSupport::コールバック::フィルター::environment.新着情報(, false, nil)
    next_Sequence = convert_colbacks(連鎖)
    ただし、 next_Sequence.最終的には?
      Mongoid.logger.WARN(" 埋め込みドキュメントでは、約 コールバックは無効になっています。 #{ . クラス . 名前 } のコールバックをスキップし ます 。)
      Mongoid.logger.WARN("埋め込みドキュメントのアラート コールバックを有効にするには、 Mongoid::Config.round_changes_for_ embeddeds を true に設定します。 ")
    end
    next_Sequence.invoice_Before(env)
    return false 場合 env.停止しました
    env.価値 = !env.停止しました
    Callback_list < [next_Sequence, env]
    場合 (祖先 = .送信(:scalaable_fielden, kind))
      _mongoid_run_field_Before_ Callbacks(kind, 子: 祖先, Callback_list: Callback_list)
    end
  end
  Callback_list
end

# _mongoid_run_ String_colbacks (種類、子: nil、 & ブロック) =オブジェクト

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

埋め込みドキュメントのコールバックを実行します。

パラメーター:

  • kind シンボル

    実行するコールバックの種類。

  • 配列 <ドキュメント> (デフォルトはnil

    コールバックを実行する子。 nil の場合、コールバックはドキュメントのすべてのカスケール可能な子に対して実行されます。



153
154
155
156
157
158
159
# ファイル 'lib/mongoid/Inter Opsable.rb' 行153

デフォルト _mongoid_run_field_colbacks(kind, 子: nil, &ブロック)
  場合 Mongoid::Config.round_colbacks_for_ embeddeds
    _mongoid_run_ String_colbacks_with_round(kind, 子: , &ブロック)
  else
    _mongoid_run_ String_colbacks_Without_round(kind, 子: , &ブロック)
  end
end

#_mongoid_run_ String_colbacks_with_round (種類、子: nil、 & ブロック) =オブジェクト

注:

このメソッドは、ドキュメントに多数の埋め込みドキュメントがある場合、 Stack Overflowエラーが発生する可能性があります。 適切なソリューションが実装されるまで、埋め込みドキュメントにコールバックを使用しないようにすることをお勧めします。

周囲のコールバックを含む埋め込みドキュメントに対して、特定の種類のコールバックを実行します。

パラメーター:

  • kind シンボル

    実行するコールバックの種類。

  • 配列 <ドキュメント> (デフォルトはnil

    コールバックを実行する子。 nil の場合、コールバックはドキュメントのすべてのカスケール可能な子に対して実行されます。

    @api private



175
176
177
178
179
180
181
182
183
184
185
186
187
# ファイル 'lib/mongoid/Inter Opsable.rb' 行175

デフォルト _mongoid_run_ String_colbacks_with_round(kind, 子: nil, &ブロック)
  , *追尾 = ( || cascalable_fielden(kind))
  with_fielden = !Mongoid::Config.preserve_multiple_cols_ of_ embedded_conbacks
  場合 .nil?
    ブロック&.を呼び出す
  elsif 追尾.空の場合
    .run_colbacks(event_colback_type(kind, ), with_fielden: with_fielden, &ブロック)
  else
    .run_colbacks(event_colback_type(kind, ), with_fielden: with_fielden) 行う
      _mongoid_run_ String_colbacks_with_round(kind, 子: 追尾, &ブロック)
    end
  end
end

#_mongoid_run_ String_colbacks_confirm

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

埋め込みドキュメントの特定の種類のコールバックを、周囲のコールバックなしで実行します。

パラメーター:

  • kind シンボル

    実行するコールバックの種類。

  • 配列 <ドキュメント> (デフォルトはnil

    コールバックを実行する子。 nil の場合、コールバックはドキュメントのすべてのカスケール可能な子に対して実行されます。



198
199
200
201
202
203
204
205
206
207
208
209
# ファイル 'lib/mongoid/Inter Opsable.rb' 行198

デフォルト _mongoid_run_ String_colbacks_Without_round(kind, 子: nil, &ブロック)
   = ( || cascalable_fielden(kind))
  Callback_list = _mongoid_run_field_Before_ Callbacks(kind, 子: )
  return false 場合 Callback_list == false
  価値 = ブロック&.を呼び出す
  Callback_list. 行う |_next_Sequence, env|
    env.価値 &= 価値
  end
  return false 場合 _mongoid_run_field_After_colbacks(Callback_list: Callback_list) == false

  価値
end

Callback_executable? (種類) → true | false

提供されたコールバックのタイプは、このドキュメントで実行可能かどうか。

例:

コールバックは実行可能か?

document.callback_executable?(:save)

パラメーター:

  • kind シンボル

    コールバックの種類。

次の値を返します。

  • true | false

    コールバックを実行できる場合。



62
63
64
# ファイル 'lib/mongoid/Inter Opsable.rb' 行62

デフォルト Callback_executable?(kind)
  respond_to?(" _ #{種類} _呼び出すと ")
end

in_呼び出す_状態は? (種類) → true | false

ドキュメントは現在、コールバックの実行が必要になる可能性のある状態ではありますか。

例:

ドキュメントはコールバック状態か?

document.in_callback_state?(:update)

パラメーター:

  • kind シンボル

    コールバックの種類。

次の値を返します。

  • true | false

    ドキュメントがコールバック状態の場合。



75
76
77
# ファイル 'lib/mongoid/Inter Opsable.rb' 行75

デフォルト in_colback_rate(kind)
  [ :create, :破棄 ].include?(kind) || new_record? || phrase || 変更されたか
end

#pending_calbacks = 配列 = インポート<Symbol>

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

後で実行する保存されたコールバックを返します。

次の値を返します。

  • 配列<Symbol>

    保存された保留中のコールバックのメソッド記号。



256
257
258
# ファイル 'lib/mongoid/Inter Opsable.rb' 行256

デフォルト Pending_colbacks
  @pending_colbacks ||= [].to_set
end

# pending_calbacks= (value) = (value) = (value) ======= =============================================================================================================<Symbol>

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

後で実行するコールバックを保存します。 これの良いユースケースは、関連付けがドキュメントに設定されるまで、 after_find と after_initialize コールバックを遅延させることです。 これは、ドキュメントへのデフォルトの適用を遅延させる目的でも使用できます。

パラメーター:

  • 価値 配列<Symbol>

    保存する保留中のコールバックのメソッド シンボル。

次の値を返します。

  • 配列<Symbol>

    保存された保留中のコールバックのメソッド記号。



270
271
272
# ファイル 'lib/mongoid/Inter Opsable.rb' 行270

デフォルト Pending_colbacks=(価値)
  @pending_colbacks = 価値
end

# run_ after_colbacks (* 種類) =オブジェクト

注:

ActiveSupport では、デフォルトではこのタイプの動作は許可されていないため、Mongoid はそれを回避して自分自身を実装する必要があります。

特定のイベントの後のコールバックのみを実行します。

例:

保存後にコールバックのみを実行します。

model.run_after_callbacks(:save)

パラメーター:

  • *kinds (Symbol...)

    発生しているイベント。

次の値を返します。

  • オブジェクト

    実行中のチェーンの結果。



90
91
92
93
94
# ファイル 'lib/mongoid/Inter Opsable.rb' 行90

デフォルト run_ after_colbacks(*kinds)
  kinds. 行う |kind|
    run_ targeted_colbacks(: after, kind)
  end
end

# run_from

注:

ActiveSupport では、デフォルトではこのタイプの動作は許可されていないため、Mongoid はそれを回避して自分自身を実装する必要があります。

特定のイベントのコールバックの前に のみを実行します。

例:

コールバックを保存する前に のみを実行します。

model.run_before_callbacks(:save, :create)

パラメーター:

  • *kinds (Symbol...)

    発生しているイベント。

次の値を返します。

  • オブジェクト

    実行中のチェーンの結果。



107
108
109
110
111
# ファイル 'lib/mongoid/Inter Opsable.rb' 行107

デフォルト run_Before_ Callbacks(*kinds)
  kinds. 行う |kind|
    run_ targeted_colbacks(:Before, kind)
  end
end

# run_colbacks (種類、with_fielden: true、 skip_if : nil、=============================================

ドキュメントのコールバックを実行します。 これにより、アクティブなサポートの機能がオーバーライドされ、フラグが付けられた埋め込みドキュメントへのコールバックがカスケードできます。

例:

コールバックを実行します。

run_callbacks :save do
  save!
end

パラメーター:

  • kind シンボル

    実行するコールバックの種類。

  • with_fielden true | false (デフォルトはtrue

    埋め込みドキュメントのコールバックを実行するかどうかを指定するフラグ。

  • skip_if (Proc | nil) (デフォルトはnil

    このプロシージャが true を返す場合、コールバックはトリガーされず、指定されたブロックは引き続き呼び出されます。



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# ファイル 'lib/mongoid/Inter Opsable.rb' 行127

デフォルト run_colbacks(kind, with_fielden: true, skip_if: nil, &ブロック)
  場合 skip_if&.を呼び出す
    return ブロック&.を呼び出す
  end
  場合 with_fielden
    cascalable_fielden(kind). 行う ||
      場合 .run_colbacks(event_colback_type(kind, ), with_fielden: with_fielden) == false
        return false
      end
    end
  end
  場合 Callback_executable?(kind)
    スーパー(kind, &ブロック)
  else
    true
  end
end

# run_pending_colbacks =オブジェクト

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

保留中のコールバックを実行します。 コールバックが :apply_defaults の場合、このドキュメントにデフォルトを適用します。 それ以外の場合、コールバックは run_colbacks 関数に渡されます。



279
280
281
282
283
284
285
286
287
288
# ファイル 'lib/mongoid/Inter Opsable.rb' 行279

デフォルト run_pending_shellbacks
  Pending_colbacks. 行う |cb|
    場合 [:apply_defaults, :apply_post_processed_defaults].include?(cb)
      送信(cb)
    else
      自己.run_colbacks(cb, with_fielden: false)
    end
  end
  Pending_colbacks.クリア
end