여러 개의 has_and_belongs_to_many
연관이 있고 중복 키와 관련된 MySQL 오류를 피하기 위해 연관에 uniq
옵션을 사용했습니다. 내 협회는 다음과 같습니다 : I 추가has_and_belongs_to_many 연관 테이블의 고유 인덱스가 "중복 항목"생성 실패
has_and_belongs_to_many :people, :uniq => true
인덱스 내가 사용하여 추가 분단 기본 키 다음 assocation의 양쪽에
add_index :table_name, [:key_1, :key_2], :unique => true
. 그러나 객체를 두 번 연결하려고하면 MySQL에서 생성 된 Mysql2::Error: Duplicate entry '1-9' for key...
오류가 발생합니다. 이 문제를 해결할 현명한 방법이 있습니까?
나는 몇 가지 가능한 해결책을 생각했지만 똑똑하지 않습니다. :insert_sql
옵션을 사용하여 INSERT 쿼리를 수동으로 변경하는 방법을 생각했지만 20 개의 연관 테이블에 대해 많은 작업이 필요했습니다. 이 문제를 해결할 더 좋은 방법이 있습니까?
내가 어떻게 할 수있는 데이터베이스가 잡힐 경쟁 조건의 기회가있을거야 얼마나 조심 일을 지키기 위해 중앙 위치에서 이것을합니까? 나는이 20 개의 다른 장소에서이 오류를 재현하고 싶지 않다. – davidb
이 질문에 새 스레드 개설 => http://stackoverflow.com/questions/8644577/how-to-rescue-exception-central-and-dry – davidb