I have the same problem and I can accurately reproduce the result. If I activate ActiveRecord :: Rollback in an external block, then the whole transaction is rolled back, but otherwise nothing will be rolled back.
-, ActiveRecord , SQLite3, ActiveRecord , SQLite 3.6.8.
, ActiveRecord , ...
> List.connection.supports_savepoints?
=> false
Ubuntu 11.04 - Natty Narwhal;
ruby ​​1.8.7 (2010-04-19 patchlevel 253) [i486-linux], MBARI 0x8770, Ruby Enterprise Edition 2010.02;
Ruby on Rails 3.0.3;
sqlite3 gem 1.3.3
SQLite 3.7.2;