【问题标题】:Mysql::Error: Duplicate entry with a common Rails AsssociationMysql::Error: Duplicate entry with a common Rails Association
【发布时间】:2011-06-10 18:09:31
【问题描述】:

我有一个直截了当的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

如果我将电子邮件分配给一个 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)

【问题讨论】:

    标签: mysql ruby-on-rails activerecord polymorphic-associations


    【解决方案1】:

    好的,为了解决这个问题,您需要确保在使用 HABTM 关联时,将您的表设置为虚假 ID。因此:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2013-09-09
      • 2017-09-05
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多