Validating non ActiveRecord objects

I’ve seen a few semi-solutions to this issue but nothing recent and coherent. What is the best way to use the AR validation system on non-AR objects? Seems like this come up enough it should be a HowTo on the Rails site.

Thanks,

-Sam.