has_and_belongs_to_many, evitando dupes na tabela de junção

Eu tenho um conjunto bastante simples de modelos HABTM

class Tag < ActiveRecord::Base 
   has_and_belongs_to_many :posts
end 

class Post < ActiveRecord::Base 
   has_and_belongs_to_many :tags

   def tags= (tag_list) 
      self.tags.clear 
      tag_list.strip.split(' ').each do 
        self.tags.build(:name => tag) 
      end
   end 
end 

Agora tudo funciona bem, exceto que recebo uma tonelada de duplicatas na tabela Tags.

O que eu preciso fazer para evitar duplicatas (bases no nome) na tabela de tags?

questionAnswers(12)

yourAnswerToTheQuestion