transactions not work for array?

You need to raise an exception so the transaction knows to rollback, so use save! (raises ActiveRecord::RecordInvalid when invalid) instead of save (returns false when invalid).

jeremy