+1  A: 

Are you certain that cache is a Hash? The behavior you are describing is not normal.

$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]

>> h = {:a => 1, :b => 2}
=> {:b=>2, :a=>1}
>> h
=> {:b=>2, :a=>1}
>> h.delete_if {|k,v| v == 2}
=> {:a=>1}
>> h
=> {:a=>1}

>> h = {:a => 1, :b => 2}
=> {:b=>2, :a=>1}
>> h.delete_if {|k,v| true}
=> {}
>> h
=> {}
jdl
cache.class.to_s tell me it is a Hash. That is really strange.
Zardoz
A: 

Maybe it is a bug of acts_as_taggable_on and you can just fill in a bug report.

vurte