J'ai plusieurs has_and_belongs_to_many
et j'ai également utilisé les uniq
dans les associations pour éviter les erreurs MySQL en relation avec les clés dupliquées. Mes associations sont comme ceci :
has_and_belongs_to_many :people, :uniq => true
L'index que j'ai ajouté est une clé primaire divisée que j'ai ajoutée en utilisant :
add_index :table_name, [:key_1, :key_2], :unique => true
des deux côtés de l'assocation. Mais lorsque j'essaie d'associer deux fois un objet, mon application jette la commande Mysql2::Error: Duplicate entry '1-9' for key...
qui est générée par MySQL. Existe-t-il un moyen intelligent de gérer ce problème ?
J'ai pensé à plusieurs solutions possibles mais elles ne sont pas intelligentes. J'ai pensé à modifier manuellement la requête INSERT en utilisant la fonction :insert_sql
mais cela représenterait beaucoup de travail pour 20 tables d'association. Existe-t-il un meilleur moyen de traiter ce problème ?