モジュール: Mongoid:::関連付け::参照::CounterCache:Classメソッドs

定義:
build/mongoid- 8.1 /lib/mongoid/asaction/referenced/counter_cache.rb

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

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

#decimal_counter (counter_name, ID ) = Object

ID に一致するエントリからカウンター名を 1 つずつ減算します。 このメソッドは、counter_cache が有効になっている場合に関連付けコールバックで使用されます

例:

コメント カウンターを減算

Post.decrement_counter(:comments_count, '50e0edd97c71c17ea9000001')

パラメーター:

  • counter_name シンボル

    counter キャッシュ名

  • id ( string )

    カウンターが減算されるオブジェクトの ID。



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 が有効になっている場合に関連付けコールバックで使用されます

例:

コメント カウンターを増やします

Post.increment_counter(:comments_count, '50e0edd97c71c17ea9000001')

パラメーター:

  • counter_name シンボル

    counter キャッシュ名

  • id ( string )

    カウンターが増加するオブジェクトの ID。



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からのクエリ。 このメソッドは、カウンターが破損した場合、または新しいカウンターが コレクションに追加された場合に役立ちます。

例:

指定されたカウンター キャッシュをリセットします

Post.reset_counters('50e0edd97c71c17ea9000001', :comments)

パラメーター:

  • id ( string )

    リセットされるオブジェクトの ID。

  • *counters (Symbol...)

    リセットする 1 つ以上のカウンター キャッシュ。



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 コマンドを使用します。

例:

コメント カウンターに5を追加し、お気に入りから2を削除

counter.
Post.update_counters('50e0edd97c71c17ea9000001',
           :comments_count => 5, :likes_count => -2)

パラメーター:

  • id ( string )

    更新するオブジェクトの ID。

  • カウンター ハッシュ


53
54
55
ファイル 'Build/mongoid- 8.1 /lib/mongoid/as associated/referenced/counter_cache.rb '、 行53

デフォルト update_counters(id, カウンター)
  WHERE(:_id => id).含む(カウンター)
end