私はレールアプリに取り組んでおり、次のエラーが頻繁に発生しています。
Mysql2::Error: Duplicate entry '3022093-2000000028003-visited' for key 'unique_user_place_relationship'
問題の原因を次の行に絞り込みましたが、
begin
up = UserPlace.new(user_place_params)
up.skip_logging
up.save!
rescue ActiveRecord::RecordNotUnique => e
Rails.logger.warn(e)
end
私のテーブルには、次のインデックスがあります。
key_name seq_in_index column_name
unique_user_place_relationship 1 user_id
unique_user_place_relationship 2 place_id
unique_user_place_relationship 3 relationship
validate_uniqueness_of
にuser_id 、 place_id 、および関係がないという問題はありますuser_place.rb
か?
私の理解でActiveRecord:RecordNotUnique
は、トランザクションがデータベース レベルでインデックスの制約を満たしていないため、このエラーをキャッチする必要があります。