acts_as_taggable_on_steroids and cached_tag_list

Just posting a solution (which started a problem I was going to post
about)

I'm using acts_as_taggable_on_steroids with rails 2.0.1

When I would add tags (via a form) to my model they would go straight
to that models cached_tag_list field as expected, but the tags and
associations would never get saved to my tags and taggings tables.
However, playing in console ... they would get saved fine!

I managed to figure out that i needed to add a

before_save 'self.save_tags'

to my 'acts_as_taggable' model .... after i did this associations were
saving fine to both places ...

I am confused though ... as to why i would have to add this
callback ... from what I can tell the plugin is supposed to do this
already, confusing. Anyone know why the plugin doesn't do both?

from its source ... i see

        def save_tags
          return unless @tag_list

          new_tag_names = @tag_list - tags.map(&:name)
          old_tags = tags.reject { |tag| @tag_list.include?
(tag.name) }

          self.class.transaction do
            if old_tags.any?
              taggings.find(:all, :conditions => ["tag_id IN (?)",
old_tags.map(&:id)]).each(&:destroy)
              taggings.reset
            end

            new_tag_names.each do |new_tag_name|
              tags <<
Tag.find_or_create_with_like_by_name(new_tag_name)
            end
          end

          true
        end

i was able to deduce that its returning because of @tag_list ... and
not executing a normal save ... I asssume somewhere else that means
@tag_list is being cleared, perhaps after the cached version is saved.