2012-04-05 2 views
2

나는 embeds_many 주소를 가진 사람 모델이 있습니다.임베디드 문서 저장 몽고이드

업데이트시 임베드 관계를 항상 지울 수 있습니까? 예를 들어 주소를 포함한 사람의 완전한 표현을 보내는 경우 기존 주소를 추가하는 대신 바꿉니다.

내 임시 수정은 당신이 당신의 사람을 업데이트 할 때 분명 밖으로 모든 주소

class Person 
    include Mongoid::Document 
    embeds_many :addresses 

    before_save :clear_addresses! 

    def clear_addresses! 
    self.unset(:addresses) 
    end 
end 
+0

당신은 왜 embeds_many을 갖는 할 경우 주소? 이 주소가 당신의 사람과 관련이 없기 때문에 ........ – shingara

답변

1

당신은 빈 addresses PARAMS을 전달할 수있는 before_save 콜백입니다

person.update_attributes(:addresses => []) 
+0

예, 가능합니다. 그러나 내가하고 싶은 일은 매번 _clear하는 것입니다. 주소가 전달되면 이미 보존 된 주소를 재정의해야합니다. –

+0

정말 목적을 이해하지 못합니다. ( – shingara

+0

서버에 전송되지 않으면 현재 설정 주소를 지워야합니다. 따라서 주소를 전달하지 않으면 기존 주소를 지워야합니다. –

관련 문제