0
을 통해 나는 많은에 많은이 : 클래스의 집합 사이의 관계를 통해과 같이 : 사용자는 어느 하나에 한 몫을 가질 수 있도록고유 협회 :
class Company
has_many :shares
has_many :users, :through => :shares, :uniq => true
end
class User
has_many :shares
has_many :companys, :through => :shares, uniq => true
end
class Share
belongs_to :company
belongs_to :user
end
나는 독특한 관계를 확인하려면 회사, "uniq"인수를 사용하여 달성하려고 시도한 것입니다.
처음에는 이것이 작동하고 있다고 생각했지만 "uniq"는 레코드의 SELECT에 필터를 적용하는 것이므로 INSERT가 아닌 것처럼 보이므로 데이터베이스에 중복 레코드가 생겨 문제가됩니다. : share association을 직접 다루기를 원한다면, user.shares를 호출하면 중복 레코드가 존재할 경우이를 반환 할 것이다.
진정한 유니크 관계를 강요하는 접근법을 가진 사람이 있습니까? 그래서 내가 사용자와 회사간에 두 번째 관계를 추가하려고하면 그것을 거부하고 원본 만 유지할 것입니다.