Question

Je joue autour avec une fourchette de acts_as_taggable_on_steroids comme un exercice d'apprentissage. La version que je suis à la recherche des choses ne je ne comprends pas calculer Tag compte. Donc, je pensais que je ferais une version à l'aide PORC (compteurs Plain Old Rails):

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

Je pensais que tagging_counter_cache était accessible de manière transparente quand j'accéder tag.taggings.count mais apparemment pas? Dois-je vraiment accéder tag.tagging_counter_cache explicitement?

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

Idem pour la taille.

Il est cool si c'est le cas, mais je voulais juste vérifier.

Était-ce utile?

La solution

Appel #size sur la collection

>> tag.taggings.size

renverra la valeur dans le cache du compteur. #count Appel

>> tag.taggings.count

sera toujours forcer un appel sql pour obtenir le dernier décompte.

Autres conseils

Avez-vous créé la colonne associée dans votre migration? Il a besoin d'un endroit pour stocker le cache.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top