<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -23,15 +23,17 @@ class ActiveRecord::Base #:nodoc:
     def _remove_tags outgoing
       taggable?(true)
       outgoing = tag_cast_to_string(outgoing)
+      return [] if outgoing.empty?
   &lt;% if options[:self_referential] %&gt;  
       # because of http://dev.rubyonrails.org/ticket/6466
       taggings.destroy(*(taggings.find(:all, :include =&gt; :&lt;%= parent_association_name -%&gt;).select do |tagging| 
         outgoing.include? tagging.&lt;%= parent_association_name -%&gt;.name
       end))
-  &lt;% else -%&gt;   
-      &lt;%= parent_association_name -%&gt;s.delete(*(&lt;%= parent_association_name -%&gt;s.select do |tag|
-        outgoing.include? tag.name    
-      end))
+  &lt;% else -%&gt;
+      outgoing_tags = &lt;%= parent_association_name -%&gt;s.find_all_by_name(outgoing)
+      outgoing_taggings = taggings.find_all_by_&lt;%= parent_association_name -%&gt;_id(outgoing_tags.map(&amp;:id))
+
+      taggings.destroy(*outgoing_taggings)
   &lt;% end -%&gt;
     end
 </diff>
      <filename>generators/tagging/templates/tagging_extensions.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>104665587138345bb0ef799065d175f3513ea166</id>
    </parent>
  </parents>
  <author>
    <name>Paulo Pereira</name>
    <email>paulo.zoom@gmail.com</email>
  </author>
  <url>http://github.com/fauna/has_many_polymorphs/commit/01db462d35814c42f5ae76309e9eb583becae919</url>
  <id>01db462d35814c42f5ae76309e9eb583becae919</id>
  <committed-date>2009-04-27T16:58:29-07:00</committed-date>
  <authored-date>2009-04-16T09:49:56-07:00</authored-date>
  <message>Changed _remove_tags so that it calls Tagging#destroy instead.
This way Tagging#after_destroy is properly triggered and orphaned tags are destroyed.

Signed-off-by: Snax Fauna &lt;evan+fauna@cloudbur.st&gt;</message>
  <tree>2859c7fc8a4805e3cfa08364e1fc48d99bf7dd41</tree>
  <committer>
    <name>Snax Fauna</name>
    <email>evan+fauna@cloudbur.st</email>
  </committer>
</commit>
