Showing errors for saves of 2 records

I accept input for two related records from a user form and in my
controller I do the following:

Record1.transaction do
Record1.save!
Record2.save!
end

Record2 is related to record1, and can only be saved if Record1 is
saved. Now obviously if the user entered some invalid input for
Record1, then the verification on save of Record1 will fail.
Unfortunately, because of this Record2.save isn’t called, and I don’t
have any information on whether the user’s input for Record2 is valid.
As a result, when the user gets kicked back to the form, they only see
errors related to Record1 input. They may fix all of that, press
submit again, and then see new errors for the Record2 save.

This is no good, of course. I need to be able to show errors to the
user for the input related to both Record1 and Record2. How can I do
this?

Thanks,
Garth