희망 하시겠습니까? 1. 데이터베이스에서 객체 1과 객체 2를 가져옵니다. 둘 다 각각 has_many 연관을 가지고 있습니다. 2. 객체 1의 복제 인 객체 3을 생성하고 따라서 아직 연관이 없습니다 2. 개체 2의 연결을 복제하여 개체 3의 연결에 추가하십시오. 3. 메모리 의 작업에 새 개체 3 사용 4. 데이터베이스에 영구적 인 변경없이 프로세스를 종료하십시오 - 개체 1과 개체 2 프로세스가 종료 될 때 원래의 연관성은 여전히 유지됩니다.메모리 조작을위한 복제 된 mongo mapper 연관
대체 무슨 일이 일어나고 있는지
- 나는 물체를 잡아 1 데이터베이스 나 객체 2의 객체 1의 클론이므로
- 내가 중복 아직 연관이없는 객체 3을 만들
- (모두 2 개 has_many 협회 각을)에서 객체 2 협회 및 추가 그러나 이제 데이터베이스에 영구적 인 변화가 내가
- 나는 프로세스를 종료 메모리에 작업에 새 개체 3를 사용하여 3의 단체 반대합니다 - 목적이 자신의 키를 가지고 있기 때문에 더 이상 연관이 없다 (임시) 객체 3 id로 변경되었습니다.
여기 내 코드입니다. all.last.association1, 나는 빈 상태 (empty)의 배열이 모든 내가 말할 때 지금은
object1 = all.last.clone #we take the most recently created object
all.each do |instance|
instance_association1 = (instance.association1).dup
object1.association1 += instance_association1 #BUG this moves the association
object1.association1.uniq!
instance_association2 = (instance.association2).dup
object1.association2 += instance_association2
object1.association2.uniq!
end
주에있는 개체의 임의의 # 배열을 포함합니다.
도움말 !!