基本形
begin
ActiveRecord::Base.transaction do
.
.
raise 'ロールバックします'
end
p 'コミット' # トランザクション処理を確定
rescue => e
p 'ロールバック' # トランザクション処理を戻す
end
ActiveRecord::RecordInvalidでrescue
http://api.rubyonrails.org/classes/ActiveRecord/RecordInvalid.html
begin
complex_operation_that_internally_calls_save!
rescue ActiveRecord::RecordInvalid => invalid
puts invalid.record.errors
end