class ActsAsTaggableOn::Tag
Public Class Methods
most_hit(since=nil, limit=5)
click to toggle source
# File lib/punching_bag/acts_as_taggable_on.rb, line 4 def self.most_hit(since=nil, limit=5) query = Tagging.scoped. joins('INNER JOIN punches ON (taggings.taggable_id = punches.punchable_id AND taggings.taggable_type = punches.punchable_type)'). group(:tag_id). order('SUM(punches.hits) DESC'). limit(limit) query = query.where('punches.average_time >= ?', since) if since query.map(&:tag) end
Public Instance Methods
hits(since=nil)
click to toggle source
# File lib/punching_bag/acts_as_taggable_on.rb, line 14 def hits(since=nil) query = Tagging.scoped. joins('INNER JOIN punches ON (taggings.taggable_id = punches.punchable_id AND taggings.taggable_type = punches.punchable_type)'). where(:tag_id => self.id) query = query.where('punches.average_time >= ?', since) if since query.sum('punches.hits') end