mirror of
https://github.com/discourse/discourse.git
synced 2025-02-20 17:52:45 +08:00
Correctly handle exception
This commit is contained in:
parent
bd66fbef7f
commit
6ee352510a
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user