Rieles: validar la exclusividad de los atributos anidados con el ámbito primario del principal

Tengo un problema con la validación de unicidad de ámbito en Rails para atributos anidados con un padre de padre.

Antecedentes

Tengo una aplicación de rieles 4 con 3 modelos:

#app/models/account.rb
class Account < ActiveRecord::Base
  has_many :contacts, dependent: :destroy
end

#app/models/contact.rb
class Contact < ActiveRecord::Base
  belongs_to :account
  has_many :email_addresses, dependent: :destroy, validate: :true, inverse_of: :contact
  accepts_nested_attributes_for :email_addresses,allow_destroy: true
  validates :email_addresses, presence: true
end

#app/models/email_address.rb
class EmailAddress  < ActiveRecord::Base
  belongs_to :contact, inverse_of: :email_addresses

  validates :label, presence: true
  validates :contact, presence: true
  validates :email, uniqueness: true, presence: true
  validates_email_format_of :email
end

Problema

Quiero hacer un alcancepara asegurarse de que el atributo : correo electrónico del modelo EmailAddresses único a nivel de cuenta (La cuenta es padre de contacto, que es padre de EmailAddress).

Como se sugiere enhttp://guides.rubyonrails.org/active_record_validations.html, Lo intenté :

 class EmailAddress  < ActiveRecord::Base
  belongs_to :contact, inverse_of: :email_addresses

  validates :label, presence: true
  validates :contact, presence: true
  validates :email, presence: true, uniqueness: { scope: :account, 
                    message: "This contact email is already taken" }
  validates_email_format_of :email
 end

Esto genera el error "la columna email_addresses.account no existe" ¿Qué debo hacer?

Gracias por tu ayuda !

Respuestas a la pregunta(2)

Su respuesta a la pregunta