If I understand your question correctly you want to get the errors without saving the model?
That is exactly what is happening. @post.valid?
will return true or false depending on whether there are any errors. If there are errors. they will be added to @post.errors
hash.
In the situation where you want to save just call @post.save
It will return true if successfully saved or false if errors are present while populating @post.errors
in the process