Valider l'unicité de l'association

Donné les classes suivantes:

class Candidate
  has_many :applications
  has_many :companies, :through => :job_offers
end

class JobOffer
  belongs_to :company
end

class Application
  belongs_to :candidate
  belongs_to :job_offer
end

Valider l'unicité de l'association

Comment puis-je valider la déclaration précédente (dans l'image) sur les Rails?

L'ajout de la suite de la validation de l'Application ne fonctionne pas quand la mise à jour:

def validate_uniqueness_of_candidate_within_company
  errors.add(:job_offer_id, "...") if candidate.companies.include?(company)
end

Cause lorsque vous tentez de modifier l'application à un autre JobOffer de la même entreprise candidate.les entreprises sera de retour cette société.

J'ai aussi essayé de faire quelque chose de ce genre sur Demande:

validates_uniqueness_of :user_id, :scope => {:job_offer => :company_id}

Mais il ne fonctionne pas non plus.
Toutes les idées pour résoudre ce sans avoir à utiliser de 10 lignes de code de merde?

Existe-il des meilleures solutions disponibles maintenant?

OriginalL'auteur user1163964 | 2012-01-22