From 29dd072810380e0936ae394a40771dd62b9cabda Mon Sep 17 00:00:00 2001 From: Francisco Guzman Date: Sun, 22 Jul 2012 19:44:20 -0500 Subject: [PATCH] Modify all_tag_counts method to avoid errors in PostgreSQL --- lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb b/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb index 32349b559..b98efa83d 100644 --- a/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb +++ b/lib/acts_as_taggable_on/acts_as_taggable_on/collection.rb @@ -100,8 +100,8 @@ def all_tag_counts(options = {}) tag_conditions.each { |condition| tag_scope = tag_scope.where(condition) } # GROUP BY and HAVING clauses: - at_least = sanitize_sql(['tags_count >= ?', options.delete(:at_least)]) if options[:at_least] - at_most = sanitize_sql(['tags_count <= ?', options.delete(:at_most)]) if options[:at_most] + at_least = sanitize_sql(["COUNT(#{ActsAsTaggableOn::Tagging.table_name}.tag_id) >= ?", options.delete(:at_least)]) if options[:at_least] + at_most = sanitize_sql(["COUNT(#{ActsAsTaggableOn::Tagging.table_name}.tag_id) <= ?", options.delete(:at_most)]) if options[:at_most] having = ["COUNT(#{ActsAsTaggableOn::Tagging.table_name}.tag_id) > 0", at_least, at_most].compact.join(' AND ') group_columns = "#{ActsAsTaggableOn::Tagging.table_name}.tag_id"