5
すでに存在するRailsの自動割り当てID
次のように新しいレコードを作成します。 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をレールが自動割り当てできるようにテーブルを再作成します。他にもいくつか問題があるため、これが最良の選択であると考え始めていますが、トラックは他の多くのテーブルの外部キーであるため、これを行うための移行は非常に複雑になります。自動割り当てされたIDを使用して既存のすべての関係を維持しながら、Trailにすでに保存されている同じデータを使用してRailsが新しいテーブルを作成する簡単な方法はありますか?