0
如何在我的Rails記錄器中擁有SQL事務塊?Rails 3.活動記錄。日誌記錄。顯示SQL事務塊
例如,我有以下交易:
>> Client.transaction do
?> Client.find_by_name('Pavel').withdraw(2000)
>> Client.find_by_name('Elena').deposit(2000)
>> raise ActiveRecord::Rollback
>> end
=> nil
完成其工作,下一行會被添加到日誌/ 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;
Ruby 1.9.2;
Ruby on Rails 3.0.1;
Sqlite 3.7.3。