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在主对象保存之前不会更新。

希望有任何建议,因为我在滚动我自己的标记系统的边缘。

问候

罗宾

回答

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