У меня есть несколько has_and_belongs_to_many
ассоциаций, и я также использовал опцию uniq
в ассоциациях, чтобы избежать ошибок MySQL в связи с дублированием ключей.Мои ассоциации выглядят так:
has_and_belongs_to_many :people, :uniq => true
Индекс, который я добавил, представляет собой разделенный первичный ключ, который я добавил с помощью:
add_index :table_name, [:key_1, :key_2], :unique => true
с обеих сторон ассоциации.Но когда я пытаюсь связать объект дважды, мое приложение выдает ошибку Mysql2::Error: Duplicate entry '1-9' for key...
, которая генерируется MySQL.Есть ли умный способ справиться с этой проблемой?
Я думал о нескольких возможных решениях, но они не умны.Я думал об изменении запроса INSERT вручную, используя опцию :insert_sql
, но для 20 ассоциативных таблиц это было бы большой работой.Есть ли лучший способ справиться с этим?