Предложения о том, как отслеживать количество тегов для конкретного объекта - PullRequest
1 голос
/ 09 июня 2010

Я ищу предложения о том, как отслеживать количество тегов, связанных с конкретным объектом в Rails.Я использую acts_as_taggable_on, и он работает нормально.Я хотел бы иметь возможность искать все объекты, у которых нет тегов, предпочтительно через область видимости, т.е. Object.untagged.all

. Моей первой мыслью было использование обратного вызова after_save для обновления атрибута с именем "taggings_count "в моей модели:

def update_taggings_count
  self.taggings_count = self.tag_list.size
  self.save
end

К сожалению, это делает очевидную вещь, заключающую меня в бесконечный цикл.Мне нужно использовать обратный вызов after_save, потому что tag_list не обновляется до тех пор, пока основной объект не будет сохранен.

Буду признателен за любые предложения, поскольку я нахожусь на грани развертывания моей собственной системы тегов.С уважением

Робин

1 Ответ

0 голосов
/ 24 июля 2010

Я сделал то же самое, но поместил функцию в before_save, вот так

scope :untagged, where("taggings_count = 0")
before_save :update_taggings_count

def update_taggings_count
  self.taggings_count = tag_list.size
end
...