2011-03-21 3 views
2

다른 사람이 작성한 코드로 상황을 파악하려고합니다. 간단한 has_many 관계 (A -> B)를 가진 두 개의 모델이 있습니다.Rails 3.0.x - 왜 다른 모델이 업데이트 되었습니까?

"B"모델을 저장하는 동안 "A"모델이 데이터베이스에서 업데이트된다는 것이 문제입니다. 자, 어떤 종류의 콜백도없고 특별한 관계 조건 (: 자동 저장 등)도없고 코드에 관찰자도 없습니다.

문제는 이런 종류의 행동을 정의하는 다른 것들이 무엇일까요?

업데이트 : 아무것도 추적하기 위해 저장 프로세스를 디버깅하려고하는데 내부 active_record 메서드 호출 수가 너무 많아 져서이 접근법이 쓸모 없게됩니다.

보너스 질문 : 현재 모델 콜백을 덤프하는 방법 (내 grepping 기술에 저항하는 어떤 방식 으로든 추가 할 수 있음).

+1

'log/development.log'에 들어있는 관련 SQL을 게시 할 수 있습니까? 여기서 무엇이 업데이트되고 있는지 명확하지 않습니다. – tadman

답변

0

이것은 마샬링에서 매우 복잡한 내부 응용 프로그램 버그로 밝혀졌습니다. 결과에서 캐시에서 가져온 레코드는 지속되지 않음으로 표시되어 ActiveRecord가 관련 개체를 저장하는 동안 중복 레코드를 만들도록했습니다.

1

다음을 가질 수 있습니다. touch => true. 자동으로 연결이 업데이트됩니다.

+0

has_many with : dependent => : 파괴하고 아무것도없이 belongs_to – mdrozdziel

관련 문제