ルビーカウンターキャッシュへのアクセス
-
22-09-2019 - |
質問
私は、学習運動としてacts_as_taggable_on_steroidsのフォークで遊んでいます。私が探していたバージョンは、私はタグの数を計算するために理解していないいくつかのものを行います。
:私はPORC(プレーン旧Railsのカウンタ)を使用して、バージョンを行うだろうと思って、私はそうclass Tagging < ActiveRecord::Base #:nodoc:
belongs_to :tag, :counter_cache => "tagging_counter_cache"
...
私はtag.taggings.countにアクセスしたときtagging_counter_cacheが透過的にアクセスしたと思ったが、どうやらありませんか?私は実際に明示的にアクセスtag.tagging_counter_cacheに持っていますか?
>> tag.taggings.count
SQL (0.7ms) SELECT count(*) AS count_all FROM `taggings` WHERE (`taggings`.tag_id = 16)
サイズ同じ。
ケースですが、ちょうどチェックしたい場合は、それの涼しいます。
解決
タグのコレクションに#sizeを呼び出します
>> tag.taggings.size
は、カウンタキャッシュ内の値を返します。呼び出し#count
>> tag.taggings.count
は、常に最新のカウントを取得するためのSQLの呼び出しを強制します。
他のヒント
あなたはあなたの移行に関連する列を作成しましたか?これは、キャッシュを保存するためにどこかが必要です。
所属していません StackOverflow