The "validates_" methods in your model can all generally be passed a :message => "My Validation Message" parameter.
I generally wrap errors in something like this:
<% if([email protected]?) %>
<div id="error_message">
<h2>
<%= image_tag("error.png", :align => "top", :alt => "Error") -%>
Oops, there was a problem editing your information.
</h2>
<%= short_error_messages_for(:model) %>
</div>
<% end %>
Then in my application_helper I iterate over the errors and generate a simple list:
def short_error_messages_for(object_name)
object = instance_variable_get("@#{object_name}")
if object && !object.errors.empty?
content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) } )
else
""
end
end
That code is pretty old and probably not how I would write Ruby these days, but you get the gist.