1

我正在寻找有关如何跟踪与 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 在保存主对象之前不会更新。

如果我即将推出自己的标记系统,我将不胜感激。

问候

罗宾

4

1 回答 1

0

我做了同样的事情,但是把函数放在 before_save 中,就像这样

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

def update_taggings_count
  self.taggings_count = tag_list.size
end
于 2010-07-23T22:02:47.417 回答