has_and_belongs_to_many, unikając dupów w tabeli łączenia

Mam całkiem prosty zestaw modeli 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 

Teraz wszystko działa dobrze, z wyjątkiem tego, że dostaję mnóstwo duplikatów w tabeli Tagi.

Co muszę zrobić, aby uniknąć duplikatów (bazujących na nazwie) w tabeli tagów?