ES /docs

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_entity early-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 흐름 상 orphan editing_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 파일에 추가.