다음과 같이 새 레코드를 만듭니다.
truck = Truck.create(:name=>name, :user_id=>2)
내 데이터베이스에는 현재 트럭에 대한 수천 개의 엔티티가 있지만 일부 ID를 사용할 수있는 방식으로 일부에 ID를 할당했습니다. 그래서 무슨 일이 일어나고 있는지 rails는 id = 150으로 항목을 만들고 잘 작동합니다. 그러나 항목을 만들고 할당하려고 시도하지만 ID = 151이 이미 존재할 수 있으므로 다음 오류가 표시됩니다.
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
다음에 액션을 실행할 때 단순히 ID 152를 할당합니다. 해당 값이 아직 적용되지 않은 경우 제대로 작동합니다. ID를 할당하기 전에 ID가 이미 존재하는지 확인하기 위해 레일을 얻으려면 어떻게해야합니까?
감사!
편집하다
트럭 ID는 복제되는 것입니다. 사용자가 이미 존재하며이 경우 상수입니다. 사실 제가 다루어야 할 유산 문제입니다. 한 가지 옵션은 이번에는 rails가 모든 ID를 자동 할당하도록 테이블을 다시 만드는 것입니다. 몇 가지 다른 문제가 있기 때문에 이것이 최선의 선택이라고 생각하기 시작했지만 Truck은 다른 많은 테이블에서 외래 키이기 때문에이를 수행하는 마이그레이션은 매우 복잡 할 것입니다. 자동 할당 된 ID와 모든 기존 관계를 유지하면서 트럭에 이미 저장된 동일한 데이터를 사용하여 레일이 새 테이블을 생성하도록하는 간단한 방법이 있습니까?