モジュール: Mongoid::Persistable

次による拡張機能。
ActiveSupport::Concern
次のことが含まれます。
作成 可能 、削除可能 破棄 可能 増分 可能 、 論理 、 最大 可能 最小 可能 、 乗算 可能 、ポップ可能 、 プル 可能 、 プッシュ 可能 、変更可能 保存 可能 、設定可能 、設定 不可 、 更新 可能 、 アップ サート 可能 、 位置 指定
次のドキュメントに含まれます。
構成可能
定義:
lib/mongoid/perstable.rb
lib/mongoid/persistable/ logical.rb、
lib/mongoid/persistable/maxable.rb、
lib/mongoid/persistable/minable.rb、
lib/mongoid/persistable/savable.rb、
lib/mongoid/persistable/popable.rb、
lib/mongoid/persistable/pullable.rb、
lib/mongoid/persistable/pushable.rb、
lib/mongoid/persistable/settable.rb、
lib/mongoid/persistable/creatable.rb、
lib/mongoid/persistable/deletable.rb、
lib/mongoid/persistable/renameable.rb、
lib/mongoid/persistable/updatable.rb、
lib/mongoid/persistable/unsetable.rb、
lib/mongoid/persistable/upsertable.rb、
lib/mongoid/persistable/detryable.rb、
lib/mongoid/persistable/multipleable.rb、
lib/mongoid/persistable/incrementable.rb

Overview

永続化操作の一般的な動作が含まれています。

名前空間で定義済み

Modules: 作成 可能 、削除可能 破棄 可能 、 増分 可能 、 論理 最大 値 、 最小 性 、乗算 可能 、ポップ可能 、 プル 可能 、プッシュ可能 、変更可能 保存 可能 、設定可能 、設定 不可 、 更新 可能 、アップ サート 可能

定数の概要の削減

LEST_OPERATIONS =

db 内の配列またはセットを取り扱うアトミック操作。

[ "$addToSet", " $push ", " $pull ", " $pullAll " ].freeze

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

Unsetableに含まれるメソッド

#unset

アップサート可能に含まれるメソッド

#upsert

更新可能に含まれるメソッド

#update, #update!, #update_attribute

Settableに含まれるメソッド

#set

Saveableに含まれるメソッド

#save, #save!

[Renameable ]に含まれるメソッド

#rename

プッシュ可能な に含まれるメソッド

#add_to_set#push

Pullableに含まれるメソッド

#pull, #pull_all

位置から含まれるメソッド

位置的に

popableに含まれるメソッド

#pop

乗算可能に含まれるメソッド

#mul

Minableから含まれるメソッド

#set_min

Maxableに含まれるメソッド

#set_max

論理演算子に含まれるメソッド

ビット

インクリメント可能に含まれるメソッド

#inc

破棄可能な に含まれるメソッド

#デプロイ#デプロイ 。

Deleteableに含まれるメソッド

#delete

作成可能に含まれるメソッド

#insert

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

アトミックに(join_context: nil)= true| false

ブロック内で発生するすべてのことに対してアトミックに(単一のデータベース呼び出し内で)操作を実行します。 このメソッドでは、 へのさらなる呼び出しがアトミックにネストされます。これは以下に記載されているオプションに従って動作します。

join_context というオプションを指定できます。これが true の場合、指定されたブロックによって宣言された操作と、同じドキュメントの現在の呼び出しをラップするアトミック ブロック(存在する場合)をマージします。 このブロックまたは同じコンテキストを共有する他のブロックが永続化する前に発生すると、そのコンテキストのすべての操作は永続化されず、メモリ内でリセットされます。

join_context が false の場合、指定された操作のブロックは他のコンテキストとは独立して永続化されます。 このブロックが変更を実行し永続化できる限り、他のコンテキストでの障害はこのコンテキストに影響しません。

join_context のデフォルト値はグローバル構成オプション join_contexts によって設定され、独自のデフォルト値は false です。

例:

操作を不可分的に実行します。

document.atomically do
  document.set(name: "Tool").inc(likes: 10)
end

一部の内部操作はアトミックに、かつ外部操作とは独立して実行されます。


document.atomically do
  document.inc likes: 10
  document.atomically join_context: false do
    # The following is persisted to the database independently.
    document.unset :origin
  end
  document.atomically join_context: true do
    # The following is persisted along with the other outer operations.
    document.inc member_count: 3
  end
  document.set name: "Tool"
end

パラメーター:

  • join_context true | false (デフォルトはnil

    コンテキストを結合します(つまり、 宣言されたアトミック操作をマージする)を定義します。

次の値を返します。

  • true | false

    操作が成功した場合、。



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# ファイル 'lib/mongoid/永続的.rb' 行94

デフォルト アトミックに(join_context: nil)
  join_context = Mongoid.join_contexts 場合 join_context.nil?
  Call_ Depth = @アトミック_深度 ||= 0
  has_own_context = Call_ Depth.zero? || !join_context
  @atomic_updates_to_execute_stack ||= []
  _mongoid_push_atomic_context 場合 has_own_context

  場合 ブロック_指定
    @アトミック_深度 += 1
    ノードの数(自己)
    @アトミック_深度 -= 1
  end

  場合 has_own_context
    永続性_アトミック_操作 @atomic_context
    _mongoid_remove_アトミック_context_changes
  end

  true
ヘルプ 標準エラー => e
  _mongoid_reset_アトミック_context_changes 場合 has_own_context
  発生 e
保証する
  _mongoid_pop_アトミック_context 場合 has_own_context

  場合 Call_ Depth.zero?
    @アトミック_深度 = nil
    @atomic_updates_to_execute_stack = nil
  end
end

#fail_due_to_customback (メソッド) =オブジェクト

コールバックが失敗した場合はエラーが発生します。

例:

コールバック エラーを発生させます。

Person.fail_due_to_callback!(person, :create!)

パラメーター:

  • メソッド シンボル

    呼び出されるメソッド。

次の値が発生します。



143
144
145
# ファイル 'lib/mongoid/永続的.rb' 行143

デフォルト fail_due_to_customback(メソッド)
  発生 Errors::Callback.新着情報(自己.クラス, メソッド)
end

次は、 fail_due_to_validation です。 =オブジェクト

検証に失敗した場合はエラーが発生します。

例:

検証エラーを発生させます。

Person.fail_due_to_validation!(person)

次の値が発生します。



131
132
133
# ファイル 'lib/mongoid/永続的.rb' 行131

デフォルト fail_due_to_validation。
  発生 Errors::検証.新着情報(自己)
end