Forma anidada de Rails en HABTM: ¿cómo prevenir la entrada duplicada?

Tengo una aplicación simple con 3 tablas en la base de datos y relaciones "muchos a muchos".

# Model Employee
class Employee < ActiveRecord::Base
   has_and_belongs_to_many :phonenumbers
   accepts_nested_attributes_for :phonenumbers, :allow_destroy => true
   attr_accessible :last_name, :first_name, :middle_name, :phonenumbers_attributes
end

# Model Phonenumber
class Phonenumber < ActiveRecord::Base
  has_and_belongs_to_many :employees
  attr_accessible :number
  accepts_nested_attributes_for :employees
end

Tengo la tabla de combinación 'employee_phonenumbers' con las columnas 'employee_id' y 'phonenumber_id'.

# View
<%= form_for @employee, :url => { :action => :create } do |f| %>

<%= f.label "Last name"   %>
<%= f.text_field :last_name   %>

<%= f.label "First name"   %>
<%= f.text_field :first_name  %>

<%= f.label "Middle name"   %>
<%= f.text_field :middle_name %>

<%= f.fields_for :phonenumbers do |phonenumber| %>
    <%= phonenumber.label "Phone number" %>
    <%= phonenumber.telephone_field :number %>
<% end %>

<%= f.submit "Create" %>
<% end %>

# Controller
def create
  @employee = Employee.new(params[:employee])
  @employee.save ? (redirect_to :action => :index) : (render "new")
end

Ahora, si creo un usuario: 'John' con el número de teléfono '555', está bien.

Pero si quiero crear un usuario 'Larry' con el mismo número de teléfono '555', hay una entrada duplicada de '555' en la base de datos.

¿Cómo puedo prevenir esto?

ACTUALIZAR: Mi lógica es: si hay el número '555', entonces no cree uno nuevo, use el existente. Si no hay tal número, cree uno nuevo y utilícelo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta