diff --git a/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb b/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb index 9a17123a7..449f0a9c3 100644 --- a/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb +++ b/lib/acts_as_taggable_on/acts_as_taggable_on/core.rb @@ -75,6 +75,7 @@ def tagged_with(tags, options = {}) conditions = [] context = options.delete(:on) + alias_base_name = undecorated_table_name.gsub('.','_') if options.delete(:exclude) tags_conditions = tag_list.map { |t| sanitize_sql(["#{ActsAsTaggableOn::Tag.table_name}.name #{like_operator} ?", t]) }.join(" OR ") @@ -102,7 +103,7 @@ def tagged_with(tags, options = {}) safe_tag = tag.name.gsub(/[^a-zA-Z0-9]/, '') prefix = "#{safe_tag}_#{rand(1024)}" - taggings_alias = "#{undecorated_table_name}_taggings_#{prefix}" + 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}" + @@ -114,7 +115,7 @@ def tagged_with(tags, options = {}) end end - taggings_alias, tags_alias = "#{undecorated_table_name}_taggings_group", "#{undecorated_table_name}_tags_group" + taggings_alias, tags_alias = "#{alias_base_name}_taggings_group", "#{alias_base_name}_tags_group" if options.delete(:match_all) joins << "LEFT OUTER JOIN #{ActsAsTaggableOn::Tagging.table_name} #{taggings_alias}" +