1

나는 정직 has_and_belongs_to_many 연관을 가지고 : 나는 확실히 작동하는 하나 개의 ID로 이메일을 지정한 경우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 

..

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

확인하려면 이 경우 HABTM 연관을 사용할 때 테이블을 잘못된 ID로 설정해야합니다. 그대로 :

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