モジュール: Mongoid:::関連付け::参照::CounterCache:Classメソッドs
- 定義:
- build/mongoid- 8.1 /lib/mongoid/asaction/referenced/counter_cache.rb
インスタンス メソッドの概要を折りたたむ
-
#decimal_counter (counter_name, ID ) = Object
ID に一致するエントリからカウンター名を 1 つずつ減算します。
-
# accumulate_counter (counter_name, ID) = Object
ID に一致するエントリからカウンター名を 1 ずつ増加させます。
-
# delete_counters ( ID , *counters) = オブジェクト
.count() メソッドを使用して指定されたカウンターをリセットします。 dbからのクエリ。
-
update_counters ( ID , counter) = オブジェクト
指定されたカウンターを値の係数で更新します。
インスタンス メソッドの詳細
#decimal_counter (counter_name, ID ) = Object
ID に一致するエントリからカウンター名を 1 つずつ減算します。 このメソッドは、counter_cache が有効になっている場合に関連付けコールバックで使用されます
79 80 81 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/as associated/referenced/counter_cache.rb '、 行79 デフォルト デクリメント_カウンター(counter_name, id) update_counters(id, counter_name.to_sym => -1) end |
# accumulate_counter (counter_name, ID) = Object
ID に一致するエントリからカウンター名を 1 ずつ増加させます。 このメソッドは、counter_cache が有効になっている場合に関連付けコールバックで使用されます
66 67 68 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/as associated/referenced/counter_cache.rb '、 行66 デフォルト インクリメント_カウンター(counter_name, id) update_counters(id, counter_name.to_sym => 1) end |
#reset_counters (id, *counters) =オブジェクト
.count() メソッドを使用して指定されたカウンターをリセットします。 dbからのクエリ。 このメソッドは、カウンターが破損した場合、または新しいカウンターが コレクションに追加された場合に役立ちます。
34 35 36 37 38 39 40 41 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/as associated/referenced/counter_cache.rb '、 行34 デフォルト delete_counters(id, *カウンター) ドキュメント = id.is_a?(ドキュメント) ? id : find(id) カウンター.各 行う |name| 関係_関連付け = 関係[name] counter_name = 関係_関連付け.逆_関連付け.counter_cache_count_name ドキュメント.update_attribute(counter_name, ドキュメント.送信(name).count) end end |
update_counters ( ID , counter) =オブジェクト
指定されたカウンターを値の係数で更新します。 アトミックな $inc コマンドを使用します。
53 54 55 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/as associated/referenced/counter_cache.rb '、 行53 デフォルト update_counters(id, カウンター) WHERE(:_id => id).含む(カウンター) end |