【发布时间】:2011-12-27 11:43:23
【问题描述】:
我有几个 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
在协会的两侧。但是当我尝试关联一个对象两次时,我的应用程序会抛出由 MySQL 生成的 Mysql2::Error: Duplicate entry '1-9' for key... 错误。有没有聪明的方法来处理这个问题?
我已经考虑了几种可能的解决方案,但并不聪明。我考虑过使用:insert_sql 选项手动更改INSERT 查询,但这对于20 个关联表来说将是很多工作。有没有更好的方法来解决这个问题?
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-3.1 associations