error on sitetrack_id: 21354 - undefined method `untrashed?' for nil
Fix Plan: undefined method `untrashed?' for nil in CreateSitetrackEditingEntitiesWorker
Changes#
tesla: app/models/concerns/finalization/editing_entity.rb#
- What:
_do_assign_editing_to_editing_entityearly-return 조건에서self.editing.untrashed?호출을self.editing&.untrashed?로 변경. - Why:
editing_id는 값이 있어도 참조 대상Editing레코드가 하드 삭제/purge 되었거나 유령 상태이면self.editing이 nil 을 반환한다. nil 수신자에.untrashed?를 호출하면NoMethodError로 워커가 종료된다. 바로 다음 라인은 이미self.editing&.untrashed?로 동일 패턴을 안전하게 처리하고 있으므로 첫 라인만 정합성을 맞추면 stale-clear 로직으로 자연스럽게 흐른다. - Lines:
_do_assign_editing_to_editing_entity시작부의return if ...한 줄.
Acceptance Criteria#
- Diff에는
app/models/concerns/finalization/editing_entity.rb한 파일,self.editing.untrashed?→self.editing&.untrashed?단 한 줄 변경만 포함. -
grep -n 'self.editing.untrashed?' app/models/concerns/finalization/editing_entity.rb결과 0건 (self.editing&.untrashed?는 존재). - 워커 진입점
CreateSitetrackEditingEntitiesWorker#perform흐름 상 orphanediting_id케이스(editing_id present, editing nil)는 line 42 의 update_column(:editing_id, nil) 로 클리어된 후create_editing/재배정 경로가 실행되어 정상 종료.
Tests#
- 기존 테스트:
spec/models/concerns/finalization/editing_entity_spec.rb— 기존 assign 로직 회귀 여부 확인. - 신규 테스트:
_do_assign_editing_to_editing_entity에 대해editing_id는 present 이지만editing관계가 nil 을 반환하는 orphan 상황에서 예외가 발생하지 않고editing_id가 nil 로 클리어되는지 검증하는 케이스를 위 spec 파일에 추가.