Ordering of messages in error_messages_for


#1

Is there any way to control the ordering of the error messages in the
output of error_messages_for()?

I want to make the error messages match the order of the form elements
in my form, and although the validates_presence_of directive has these
attributes in that order, they still show up in seemingly random order.

Any way to control this?

Thanks,
Wes


#2

On 9 Mar 2009, at 15:07, Wes G. wrote:

Is there any way to control the ordering of the error messages in the
output of error_messages_for()?

At the end of the day the errors are stored in a hash and thus with no
guarenteed order. This might be a good time to replace
error_messages_for with code of your own (if you poke inside the
source for it you’ll see that it’s pretty simple).

Fred


#3

Fred,

I already have a custom version of error_messages_for, so yeah, that’s
cool.

Thx. for the quick response.

Wes


#4

On Mon, Mar 9, 2009 at 10:07 AM, Wes G.
removed_email_address@domain.invalid wrote:

Is there any way to control the ordering of the error messages in the
output of error_messages_for()?

I want to make the error messages match the order of the form elements
in my form, and although the validates_presence_of directive has these
attributes in that order, they still show up in seemingly random order.

Any way to control this?

I put my error messages right under the fields they are for:

<%= f.username :text_field %>
<% if @user.errors[‘username’] -%>

<%= @user.errors[‘username’] %>
<% end -%>

I did not like error_messages_for() when I first tried and I’ve since
found most of my clients don’t care for it either.


Greg D.
http://destiney.com/


#5

You can do this:

<%= f.text_field :email, :label => “Email Address”, :required => true
%>
<%= error_message_on @user, :email %>