Mysql :: Ошибка: дубликат записи с общей ассоциацией Rails - PullRequest
1 голос
/ 10 июня 2011

У меня прямая has_and_belongs_to_many ассоциация:

class CardSignup < ActiveRecord::Base
  has_and_belongs_to_many :emails
end

class Email < ActiveRecord::Base  
  has_and_belongs_to_many :card_signups
end

Если я назначил электронное письмо одному идентификатору, оно будет работать нормально ..

User.find(y) << Email.find(10)

Но если я попытаюсь назначитьто же письмо другому пользователю, я получаю это:

ActiveRecord::StatementInvalid: Mysql::Error: Duplicate entry '10' for key 'PRIMARY': INSERT INTO `card_signups_emails` (`id`, `card_signup_id`, `email_id`) VALUES (10, 1505, 10)

1 Ответ

1 голос
/ 10 июня 2011

Хорошо, чтобы решить эту проблему, вы должны убедиться, что при использовании ассоциаций HABTM вы устанавливаете в своих таблицах ложные идентификаторы.Как так:

create_table(:emails_users, :id => false) do |t|
  t.string :user_id
  t.string :email_id
end
...