From 08744f873e6d8bfc927636996abaa4487cee8e20 Mon Sep 17 00:00:00 2001 From: evanweaver Date: Fri, 8 Feb 2008 10:41:03 +0000 Subject: [PATCH] Use all column names in GROUP BY for Postgres (Pascal Betz). git-svn-id: svn://rubyforge.org/var/svn/fauna/has_many_polymorphs/trunk@1655 c1ad287d-65d5-445d-b84c-e64f8492f1e6 --- generators/tagging/templates/tagging_extensions.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/generators/tagging/templates/tagging_extensions.rb b/generators/tagging/templates/tagging_extensions.rb index 07f9b67..6f4c89d 100644 --- a/generators/tagging/templates/tagging_extensions.rb +++ b/generators/tagging/templates/tagging_extensions.rb @@ -125,11 +125,16 @@ class ActiveRecord::Base #:nodoc: sql << "AND taggings.taggable_type = '#{ActiveRecord::Base.send(:class_name_of_active_record_descendant, self).to_s}' " sql << "AND taggings.tag_id = tags.id " - tag_list_condition = tag_list.map {|t| "'#{t}'"}.join(", ") + tag_list_condition = tag_list.map {|name| "'#{name}'"}.join(", ") sql << "AND (tags.name IN (#{sanitize_sql(tag_list_condition)})) " sql << "AND #{sanitize_sql(options[:conditions])} " if options[:conditions] - sql << "GROUP BY #{table_name}.id " + + columns = column_names.map do |column| + "#{table_name}.#{column}" + end.join(", ") + + sql << "GROUP BY #{columns} " sql << "HAVING COUNT(taggings.tag_id) = #{tag_list.size}" add_order!(sql, options[:order], scope) -- 2.11.4.GIT