Как я могу иметь блоки транзакций SQL в моем Rails logger?
Например, у меня есть следующая транзакция:
>> Client.transaction do
?> Client.find_by_name('Pavel').withdraw(2000)
>> Client.find_by_name('Elena').deposit(2000)
>> raise ActiveRecord::Rollback
>> end
=> nil
После завершения работы следующие строки будут добавлены в log / development.log :
SQL (0.4ms) UPDATE "balances" SET "amount" = 8000 WHERE ("balances"."id" = 1)
SQL (0.2ms) UPDATE "balances" SET "amount" = 7000 WHERE ("balances"."id" = 2)
Однако вышеупомянутая транзакция не обновляет базу данных, и вывод SQL создает путаницу.
Это должно быть похоже на следующее:
BEGIN;
UPDATE "balances" SET "amount" = 8000 WHERE ("balances"."id" = 1);
UPDATE "balances" SET "amount" = 7000 WHERE ("balances"."id" = 2);
ROLLBACK;
Как получить правильный вывод SQL, когда я использую транзакции?
Спасибо.
Debian GNU / Linux 5.0.6;
Рубин 1.9.2;
Ruby on Rails 3.0.1;
Sqlite 3.7.3.