有人可以幫我理解下面的代碼。當您產生activerecord對象時會發生什麼?
def self.with_optimistic_lock(attrs)
begin
payment = where(attrs).first_or_create
yield(payment)
payment.save!
rescue ActiveRecord::StaleObjectError, ActiveRecord::StatementInvalid, ActiveRecord::RecordInvalid => e
retry
end
end
其中attrs
是散列參數。 Post
是繼承自ActiveRecord::Base
的類。
這是https://github.com/fantgeass/rails-test-tasks/blob/master/app/models/payment.rb
沒有什麼不尋常情況。一如往常。 –