bug? found by way of counter_cache/default bug

I decided that I wanted tags with counts on my custom rails blog (shameless plug: http://rorek.org/blog/ ), so I perhaps ill-advisedly commenced editing the acts_as_taggable plugin in place. I ran up against a bug: the :default for the taggings_count field apparently wasn't working, and was set to nil for new tags. Continuing on my spate of perhaps ill-advised behavior, I decided to try to work around the problem like so (with extra p's to display the weird behavior):

added to vendor/plugins/acts_as_taggable/tag.rb:   def before_save     # XXX I should really find out why :default doesn't work     if taggings_count_before_type_cast.nil? p taggings_count p taggings_count_before_type_cast       n = Tagging.count(:conditions => ['tag_id = ?', self.id])       taggings_count = n p n p self.id p taggings_count p taggings_count_before_type_cast

    end   end

Tag.find(:all, :conditions => 'taggings_count is NULL').each{|t|t.save}

1 nil 1 42 1 nil => [#<Tag:0x99c09c4 @taggings=[#<Tagging:0x99b9bd8 @attributes={"tag_id"=>"42", "id"=>"202", "taggable_type"=>"Post", "taggable_id"=>"18"}>], @errors=#<ActiveRecord::Errors:0x99bf2cc @base=#<Tag:0x99c09c4 ...>, @errors={}>, @attributes={"name"=>"software", "taggings_count"=>nil, "id"=>"42"}, @new_record_before_save=nil>]

I tried a number of incarnations of this method, calling it validate, and after_save with a save at the end. nothing worked.

Happily, my string of ill-advised behavior ended and I updated to the newest edge rails, 5982. This fixed the original problem, and now new tags are created with the correct taggings_count. However, it seems to me that this should work to fix the data, and yet it doesn't. Why's that?

Dag