일부 모델은 모두 메모리 (부모 : 자식 : 자식 : 자식)에 함께 연결되어 있으며 최상위 부모를 저장하여 동시에 저장됩니다. 이것은 잘 작동합니다.아직 존재하지 않기 때문에 after_create 콜백 중에 외래 키를 가져올 수 없습니다!
자식 중 하나의 after_create 콜백을 사용하여 변경 로그 테이블을 채우고 싶습니다. changelog 테이블로 복사/푸시해야하는 속성 중 하나는 직접 부모 인 child의 foreign_key이지만 after_create가 발생하면 존재하지 않습니다! 그것은 부모의 전에 after_create 콜백없이
, 나는 아이가 저장되고 있음을 로그에보고 볼 수있는 다음 부모가 삽입 (빈 키 외국은) ... 그 아이는 는 ID와 함께 업데이트입니다 부모. 아이의 after_create는 적시에 실행되지만, Rails가 foreign_key로 자식을 업데이트 할 기회가 있기 전에 발생합니다.
레일스가 특정 순서로 모델 링키지를 강제로 저장하도록 할 수있는 방법이 있습니까? ie.parent, 그 다음 자식 (부모 foreign_key가 존재), 그 자식의 자식 (다시 foreign_key가 접근 가능) 등등 ?? 그렇지 않다면 레코드가 생성되고 foreign_key를 얻은 후에 어떻게 일상적인 화재가 발생합니까?
이 같은 콜백 도움이 될 것 같다 : after_create_with_foreign_keys 당신이 PARENT_ID 사용할 수있는 후 아이를 잡으려고after_update
을 사용할 수