класс ActiveRecord::TransactionRollbackError
TransactionRollbackError будет поднят, когда транзакция откатывается базой данных из-за сбоя сериализации или тупика.
Эти исключения не следует обычно перехватывать в вложенных блоках транзакций, потому что они имеют побочные эффекты в фактической окружающей транзакции и внутреннем состоянии Active Record. Однако их можно перехватить, если вы находитесь над корневым блоком транзакции.
В этом случае будьте осторожны с тестовыми сценариями транзакций, поскольку они выполняют тестовые кейсы в собственной оболочке транзакции. Если вам абсолютно необходимо обработать эти исключения в тестах, рассмотрите возможность отключения тестовых сценариев транзакций в соответствующем классе тестов (self.use_transactional_tests = false).
Из-за вышеупомянутых побочных эффектов это исключение не должно подниматься вручную пользователями.
См. следующее:
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.