mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 23:36:11 +08:00
Correctly handle exception
This commit is contained in:
@ -12,11 +12,10 @@ class ActiveRecord::Base
|
||||
# OR
|
||||
#
|
||||
# find_by(hash) || create_or_find_by(hash) (if we are generally finding)
|
||||
#
|
||||
def self.find_or_create_by_safe!(hash)
|
||||
begin
|
||||
find_or_create_by!(hash)
|
||||
rescue PG::UniqueViolation
|
||||
rescue PG::UniqueViolation, ActiveRecord::RecordNotUnique
|
||||
# try again cause another transaction could have passed by now
|
||||
find_or_create_by!(hash)
|
||||
end
|
||||
|
Reference in New Issue
Block a user