Fix the #valid? method. It has to run #valid? on every model, so the @errors array will be populated.