If you could use this in Tag, that would be great https://github.com/mbleigh/acts-as-taggable-on/blob/master/lib/acts_as_taggable_on/tag.rb#L110 

Any reason you didn't match case insensitive or some other way?