的Mysql ::错误:复制与共轨入口Asssociation
问题描述:
我有一个简单的has_and_belongs_to_many
协会:的Mysql ::错误:复制与共轨入口Asssociation
class CardSignup < ActiveRecord::Base
has_and_belongs_to_many :emails
end
class Email < ActiveRecord::Base
has_and_belongs_to_many :card_signups
end
如果我指定的电子邮件给一个ID它工作正常的..
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)
答
好吧,为了解决这需要确保在使用HABTM关联时,将表设置为false id。如此:
create_table(:emails_users, :id => false) do |t|
t.string :user_id
t.string :email_id
end