errors.add_to_base not actually adding any errors to base?

I checked the API docs and found nothing about add_to_base gotchas.. but when adding an error to the base of an ActiveRecord object, it essentially does nothing. The save/valid? methods work as if there were no errors, and of course the view does not display them. Code basically goes like this:

@order = account.orders.build @order.errors.add_to_base("Must select at least one item") if @order.save ...

also tried @order.valid? instead of save

Both return true and the record is saved anyway. Any ideas? I am running Rails 1.2.6 as a gem.

I figured this out. The "save" and "valid?" methods call errors.clear before running, which was dumping the errors I had added.

Should have thought to put it in the model anyway, it is business logic after all. This works:

def validate   if items.empty?     errors.add_to_base("Must select at least one item.")   end end