私は次のような新しいレコードを作成します。
truck = Truck.create(:name=>name, :user_id=>2)
私のデータベースには現在、トラック用に数千のエンティティがありますが、いくつかのIDを使用できるように、それらのいくつかにIDを割り当てました。つまり、railsはid = 150のアイテムを作成し、正常に動作します。しかし、アイテムを作成してid = 151を割り当てようとしますが、そのIDはすでに存在している可能性があるため、次のエラーが表示されます。
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
次にアクションを実行すると、ID 152が割り当てられるだけで、その値がまだ取得されていない場合は正常に機能します。IDを割り当てる前に、IDがすでに存在するかどうかをレールで確認するにはどうすればよいですか?
ありがとう!
編集
トラックIDは複製されているものです。ユーザーはすでに存在し、この場合は定数です。それは実際に私が対処しなければならないレガシーの問題です。1つのオプションは、今回はすべてのIDを自動的に割り当てるletrailsでテーブルを再作成することです。他にもいくつか問題があるので、これが最良の選択かもしれないと思い始めていますが、Truckは他の多くのテーブルの外部キーであるため、これを行うための移行は非常に複雑になります。レールに、トラックの下にすでに保存されている同じデータを使用して、自動割り当てされたIDを使用し、既存のすべての関係を維持して、新しいテーブルを作成させる簡単な方法はありますか?