事务中的两个模型存储,出错后如何得到验证信息?

例如:
[code="java"]
a = A.new(xxx)
b = B.new(bbb)
begin
transaction do
a.save!
b.save!
end
rescue ActiveRecord::RecordInvalid =>
end
[/code]
我应该怎么做能够得到在a或b得到响应的errors验证信息。因为异常是不会让模型保留验证信息的。而我需要直接异常后重新回到页面并且使用error_messages_for 来显示信息。

rescue ActiveRecord::RecordInvalid => exception

有个record方法可以获得具体的实例:
exception.record