Prevent ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR: current transaction is aborted

, commands ignored until end of transaction block issues.
This commit is contained in:
Martin Edenhofer 2017-08-11 11:10:31 +02:00
parent 5a9138e4be
commit 335b1fad50

View file

@ -8,16 +8,22 @@ class Transaction
ApplicationHandleInfo.current = options[:interface_handle]
end
ActiveRecord::Base.transaction do
PushMessages.init
yield
if options[:interface_handle]
ApplicationHandleInfo.current = original_interface_handle
begin
PushMessages.init
yield
if options[:interface_handle]
ApplicationHandleInfo.current = original_interface_handle
end
Observer::Transaction.commit(
disable_notification: options[:disable_notification],
disable: options[:disable],
)
PushMessages.finish
rescue ActiveRecord::StatementInvalid => e
Rails.logger.error e.inspect
Rails.logger.error e.backtrace
raise ActiveRecord::Rollback
end
Observer::Transaction.commit(
disable_notification: options[:disable_notification],
disable: options[:disable],
)
PushMessages.finish
end
end
end