을 통해 많은있다. 말하자면 두 명은 그들과 관련된 Cs의 정확한 세트를 가질 수 있습니다. 이 A가 존재하는 경우 , 나는이에 고유 제한 조건을 가질 수있는 방법을 나는 다음과 같은 한 협회
A.first.cs.pluck(:key) => ['c1', 'c2']
는 다른 (A)는 제 1A까지 할당 [ 'C1', C2 '는'] 삭제 또는 업데이트 될 수 없다.
나는이 방법을 생각 할 수 있지만 레일의 방법이있다 :
1) 각 A
객체에 관련된 모든 Cs
의 문자열을 보유하고 'CS'열을 첨가 A
테이블을 비정규은 다음 넣어 새 'cs'열에 대한 제약 조건.
2) 실체화 모든 As
을 기존 및 새로운 a
가장 큰 문제로 각을 비교하는 것은 a.cs
를 채울 수 없습니다 a = A.create(bs_attributes:[{cs_attributes:{...}},{cs_attributes:{...}}])
로 nested_attributes_for를 사용하여 동시에 As
Bs
및 Cs
만들기가 a
를 생성 할 때까지이다 그 당시 유효성 확인을 위해 콜백을 수행하기에는 너무 늦었습니다.
을 할 수있는 이상의 A.first.cs.pluck 번 (: 키) => [ 'C1' , 'c1']은 유효하지 않습니다. 나는 어떤 A가 연관되어있는 cs에 유효성 검증이 있어야한다는 것을 명확히하기 위해 질문을 갱신 할 것이다. 감사 :) – robertoplancarte