トランザクションの一部として保存する一連のレコードがあります。通常の AR レコードに加えて、クレジット カード ゲートウェイ取引を行っています。それまたは AR トランザクションが失敗した場合、クレジット カード ゲートウェイから返される失敗したトランザクションのデータ (理由、日付など) を除いて、すべてをロールバックしたいと考えています。何かのようなもの
def pay
Payment.transaction do
payment.save
other.save
result = credit_card.purchase # this does the gateway transaction, no database stuff
if result.failure
raise ActiveRecord::Rollback
result.save # this is the part I want to always save
end
another.save
end
end
失敗時のロールバックからトランザクション内の特定の部分を除外する方法はありますか?
レール 3.2.5、MySQL 5.1