Доступ к кешу счетчика рубинов - PullRequest
3 голосов
/ 24 марта 2010

Я играю с вилкой act_as_taggable_on_steroids в качестве учебного упражнения. Версия, на которую я смотрю, делает некоторые вещи, которые я не понимаю, для вычисления количества тегов. Поэтому я решил сделать версию, используя PORC (Plain Old Rails Counter):

class Tagging < ActiveRecord::Base #:nodoc:
  belongs_to :tag, :counter_cache => "tagging_counter_cache"
...

Я думал, что к tagging_counter_cache был открыт прозрачный доступ, когда я захожу на tag.taggings.count, но, очевидно, нет? Должен ли я получить доступ к tag.tagging_counter_cache явно?

>> tag.taggings.count
  SQL (0.7ms)   SELECT count(*) AS count_all FROM `taggings` WHERE (`taggings`.tag_id = 16) 

То же самое для размера.

Круто, если это так, но просто хотел проверить.

Ответы [ 2 ]

2 голосов
/ 30 июня 2010

Вызов #size для коллекции

>> tag.taggings.size

вернет значение в кеш счетчика. Количество звонков

>> tag.taggings.count

всегда заставит вызов sql получить последний счет.

0 голосов
/ 27 марта 2010

Вы создали связанный столбец в своей миграции? Нужно где-то хранить кеш.

...