Right that would work nicely, however I don't know how would the errors be shown to the user in the UI and API.
I'll test it later and if it looks nice to the user I would favor your version against the current one, in fact it's what the gem does:

https://github.com/stefankroes/ancestry/blob/master/lib/ancestry/instance_methods.rb#L61