0

J'ai un modèle simple "Match" qui est supposé sauvegarder le lien bidirectionnel entre deux objets (du même type). Le problème que j'ai est que pour chaque correspondance bidirectionnelle que je découvre, j'obtiens deux entrées de base de données. Par exemple. 1: obj1 -> obj2, 2: obj2 -> obj1Graphique bidirectionnel dans les rails

Comment puis-je utiliser validates_uniqueness_of pour éviter cela ici? J'ai essayé

validates_uniqueness_of :obj1_id, :scope => :obj2_id 
validates_uniqueness_of :obj2_id, :scope => :obj1_id 

mais cela n'a pas fonctionné.

Répondre

0
validates_uniqueness_of :obj1_id, :scope => :obj2_id 

def validate 
    if find(:first, :conditions => { :obj1 => obj2, :obj2 => obj1 }) 
    errors.add_to_base("already exists") 
    end 
end 

Assez moche. Ajoutez des index de base de données uniques.

Questions connexes