모델 Project
과 Queue
사이에 레일스 연결이 있습니다. 프로젝트 has_many 대기열. 대기열에 프로젝트가 있어야하며 결과적으로 project_id에 대한 존재 확인이 있습니다.레일스 ActiveRecord :: 연관성 확인을위한 적절한 방법?
대기열을 사용하여 새 프로젝트를 만들고 싶습니다. 예를 들어,이 같은 일이 :
project = Project.new(valid: param, options: here)
project.queues << Queue.new(other_valid: param, options: here)
project.save!
으로 저장 큐는 PROJECT_ID 존재 확인에 실패하기 때문에 실패 할 것입니다.
내 일상적인 추악한 방법은 프로젝트를 작성한 다음 대기열을 추가하고 트랜잭션에서 전체를 랩핑하여 프로세스의 일부가 실패하면 롤백하는 것입니다. ... 여하튼 그것은 그것이 있어야하는 것보다 더 추악한 것처럼 보인다.
따라서 현재 상태 확인을 수행하지 않고도 새 프로젝트에서 큐를 만드는 더 좋은 방법이 있습니까? 그렇지만 여전히 해당 큐에 프로젝트가 있어야한다고 주장합니까?
건배
, 자동으로 할당해야 해당 큐에 대한 project_id. 그게 실패 할 것이라 확신합니까? –