Rails 3. Вложенные транзакции. Исключение в дочернем блоке

Почему не происходит откат изменений ActiveRecord во вложенных транзакциях после исключения в дочернем блоке?

Вот примеры:

1.


>> Client.transaction do
?>   Client.create(:name => 'Pavel')
>>   Client.transaction do
?>     Client.create(:name => 'Elena')
>>     raise ActiveRecord::Rollback
>>   end
>> end
=> nil
>> Client.all.map(&:name)
=> ["Pavel", "Elena"] # instead of []

2.


>> Client.transaction do
?>   Client.create(:name => 'Pavel')
>>   Client.transaction(:requires_new => true) do
?>     Client.create(:name => 'Elena')
>>     raise ActiveRecord::Rollback
>>   end
>> end
=> nil
>> Client.all.map(&:name)
=> ["Pavel", "Elena"] # instead of ["Pavel"]

Благодарю.

Debian GNU / Linux 5.0.6;

Рубин 1.9.2;

Ruby on Rails 3.0.1;

SQLite 3.7.3.

Ответы на вопрос(2)

Ваш ответ на вопрос