Skip to content

Commit

Permalink
Merge pull request mbleigh#189 from ScottKriegerPD/master
Browse files Browse the repository at this point in the history
Postgres fix for tagged_with
  • Loading branch information
Artem Kramarenko committed Sep 26, 2011
2 parents 5872155 + bc5e5cf commit 713da4c
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions lib/acts_as_taggable_on/acts_as_taggable_on/core.rb
Expand Up @@ -94,13 +94,13 @@ def tagged_with(tags, options = {})
taggings_alias = "#{alias_base_name}#{taggings_context}_taggings_#{tags.map(&:safe_name).join('_')}_#{rand(1024)}"

tagging_join = "JOIN #{ActsAsTaggableOn::Tagging.table_name} #{taggings_alias}" +
" ON #{taggings_alias}.taggable_id = #{table_name}.#{primary_key}" +
" ON #{taggings_alias}.taggable_id = \"#{table_name}\".#{primary_key}" +
" AND #{taggings_alias}.taggable_type = #{quote_value(base_class.name)}"
tagging_join << " AND " + sanitize_sql(["#{taggings_alias}.context = ?", context.to_s]) if context

# don't need to sanitize sql, map all ids and join with OR logic
conditions << tags.map { |t| "#{taggings_alias}.tag_id = #{t.id}" }.join(" OR ")
select_clause = "DISTINCT #{table_name}.*" unless context and tag_types.one?
select_clause = "DISTINCT \"#{table_name}\".*" unless context and tag_types.one?

joins << tagging_join

Expand All @@ -114,7 +114,7 @@ def tagged_with(tags, options = {})
taggings_alias = "#{alias_base_name}_taggings_#{prefix}"

tagging_join = "JOIN #{ActsAsTaggableOn::Tagging.table_name} #{taggings_alias}" +
" ON #{taggings_alias}.taggable_id = #{table_name}.#{primary_key}" +
" ON #{taggings_alias}.taggable_id = \"#{table_name}\".#{primary_key}" +
" AND #{taggings_alias}.taggable_type = #{quote_value(base_class.name)}" +
" AND #{taggings_alias}.tag_id = #{tag.id}"
tagging_join << " AND " + sanitize_sql(["#{taggings_alias}.context = ?", context.to_s]) if context
Expand All @@ -127,7 +127,7 @@ def tagged_with(tags, options = {})

if options.delete(:match_all)
joins << "LEFT OUTER JOIN #{ActsAsTaggableOn::Tagging.table_name} #{taggings_alias}" +
" ON #{taggings_alias}.taggable_id = #{table_name}.#{primary_key}" +
" ON #{taggings_alias}.taggable_id = \"#{table_name}\".#{primary_key}" +
" AND #{taggings_alias}.taggable_type = #{quote_value(base_class.name)}"


Expand Down

0 comments on commit 713da4c

Please sign in to comment.