我工作的一個Rails應用程序,並已經常收到以下錯誤:Mysql2 ::錯誤:鍵重複項 - ActiveRecord :: RecordNotUnique不捕捉錯誤?
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,PL ace_id和我的關係user_place.rb
?
從我的理解,ActiveRecord:RecordNotUnique
應該捕獲此錯誤,因爲事務不符合數據庫級別的索引約束。
**是**,你應該有'validates_uniqueness_of'到位**除了**的數據庫級約束。 – deefour 2013-03-06 20:20:14